没有目录,用到啥记录啥
基类选择:QWidget
QT的setwindowflags的属性总结
setWindowFlags(Qt::CustomizeWindowHint);//设置窗口标题栏自定义
setWindowFlags(Qt::WindowMinimizeButtonHint);//设置窗口的标题栏只有最小化的按钮
setWindowFlags( Qt::WindowCloseButtonHint );//设置窗口的标题栏只有关闭的按钮
setWindowFlags(Qt::WindowStaysOnTopHint);//设置窗体一直置顶,并且不会抢焦点
setWindowFlags(this->windowFlags());//设置窗口为QT的默认属性
setWindowFlags(Qt::FramelessWindowHint));//设置窗体无边框,不可拖动拖拽拉伸
setWindowModality(Qt::WindowModal); //设置窗体为模态
Qt::NonModal 非模态:正常模式
Qt::WindowModal 半模态:窗口级模态对话框,阻塞父窗口、父窗口的父窗口及兄弟窗口。
Qt::ApplicationModal 模态:应用程序级模态对话框,阻塞整个应用程序的所有窗口。
scroll Area控件
最大窗口值和最小窗口值
ui->scrollAreaWidgetContents_valveButtons->setMinimumSize(1000,1000);
ui->scrollArea_valveButtons ->setGeometry(200,200,1000,1000);//大小、位置
//添加按钮
QPushButton pb = new QPushButton(QString::asprintf(“历史%d”,991),ui->scrollAreaWidgetContents_valveButtons);//按钮序号从1开始
pb -> setGeometry(0,0,80,60);
pb -> show();
//清空按钮
QList<QPushButton> btns = ui->scrollAreaWidgetContents_valveButtons->findChildren<QPushButton*>();
foreach(QPushButton* btn, btns)
{
if(“btn_AddTab” == btn->objectName())//不想删除某个
continue;
delete btn;
}
textBrowser控件显示文字信息
//不断插入并换行
QString asd = "q2234432";
ui->textBrowser-> insertPlainText(asd);
ui->textBrowser-> insertPlainText("\n");
//光标移至尾、首
moveCursor(QTextCursor::End);
moveCursor(QTextCursor::Start);
//清空
ui->textBrowser-> clear();
qt子窗口调用主窗口控件
extern mainwindow *mainWidget;
mainwindow *mainWidget;
mainWidget = this;
读写ini配置文件
key使用中文乱码,暂未解决:方法一、 configIniRead->setIniCodec(QTextCodec::codecForName(“utf-8”));
//Qt中使用QSettings类读写ini文件
//QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省
QSettings *configIniWrite = new QSettings("./parameter.ini", QSettings::IniFormat);
configIniWrite->setIniCodec(QTextCodec::codecForName("utf-8"));
//向ini文件中写入内容,setValue函数的两个参数是键值对
//向ini文件的第一个节写入内容,ip节下的第一个参数
configIniWrite->setValue("ip/first", "192.168.0.1");
//向ini文件的第一个节写入内容,ip节下的第二个参数
configIniWrite->setValue("ip/second", "127.0.0.1");
//向ini文件的第二个节写入内容,port节下的第一个参数
configIniWrite->setValue("port/open", "2222");
//写入完成后删除指针
delete configIniWrite;
QSettings *configIniRead = new QSettings("hahaya.ini", QSettings::IniFormat);
//将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型
QString ipResult = configIniRead->value("/ip/second").toString();
QString portResult = configIniRead->value("/port/open").toString();
//打印得到的结果
qDebug() << ipResult;
qDebug() << portResult;
//读入入完成后删除指针
delete configIniRead;
Qt label竖向显示文字
//字体大小
QFont font ( “Microsoft YaHei”, 20, 75); //第一个属性是字体(微软雅黑),第二个是大小,第三个是加粗(权重是75)
ui->label->setFont(font);
ui->label->setWordWrap(true);
ui->label->setAlignment(Qt::AlignTop);
QString s = " 123456789";
ui->label->setText(s.split(“”, QString::SkipEmptyParts).join(“\n”));
char转uchar,待考证
char a = 255; //打印a乱码,打印 a + 0 : 255
QMessageBox::information(NULL, “提示”, “错误,请重新保存!”);
label显示opencv Mat
//参数1-显示图像的Label,参数2-要显示的Mat
void matToQimageLabelShow(QLabel label, cv::Mat &mat)
{
cv::Mat Rgb;
QImage Img;
if (mat.channels() == 3)//RGB Img
{
cv::cvtColor(mat, Rgb, CV_BGR2RGB);//颜色空间转换
Img = QImage((const uchar)(Rgb.data), Rgb.cols, Rgb.rows, Rgb.cols * Rgb.channels(), QImage::Format_RGB888);
}
else//Gray Img
{
Img = QImage((const uchar*)(mat.data), mat.cols, mat.rows, mat.cols*mat.channels(), QImage::Format_Indexed8);
}
label->setPixmap(QPixmap::fromImage(Img));
}
mat分离三通道
imread(“./a.png”,IMREAD_UNCHANGED);//后一个参数很重要,在图像处理中
Mat mvt[3];
split(image, mvt);