QT软件开发笔记--初探QT
1.QT界面开发的核心
connect(ui.btnWorkNext, SIGNAL(clicked(bool)), this, SLOT(OnOKbtnNext()));
ui为当前页面的页面ui,SIGNAL为QT信号槽,从界面的信号传输信号,SLOT为插槽是响应的事件,接收到信号执行该命令。signal可以从中QT手册中相应类的介绍,如果类中没有相关类,从父类中查到。
2.相关常用函数作用
isChecked()判断 输入参数为 false true 判断是否是checkedBox是否被选择
setEnabled() 控制界面是否使能
a->show();控制界面展示
this->close();控制界面关闭
3.btn 打开选择文件夹
QString srcDirPath = QFileDialog::getExistingDirectory(this, "choose src Directory","/");
getExistingDirectory可以打开文件资源管理 选择文件夹后路径保存到srcDirPath。
4.QT界面textedit判断内容是否为空
不能直接判断edit是否为空,需要通过将edit数据,ui.eample->tostdString(),保存至QString,再通过QString.empty()判断是否为空。清除text信息 ui.garyDataEdit->clear();
5.QT路径与常规WIndow的路径有所不同 两个路径需要经过一定转换
string转化为QString,QString tempRoot = QString::fromStdString(pathRoot);
QString路径,Qt是跨平台的,windows的文件路径分隔符是\,而linux的分隔符为/,要实现window下编写的程序直接应用到linux下, 在构造文件路径时,可以用QDir::toNativeSeparators
采用系统函数对文件夹进行新建或者删除,
新建文件夹:
command = "mkdir -p " + cutImgDataPath;
system(command.c_str());
删除文件夹:
std::string path = "del " + qstr2.toStdString() + " /q /s /f";
system(path.c_str());//调用windows api删除指定文件夹
6.解除QT乱码问题
QString errorlable = QString::fromLocal8Bit("(分色系数必须在0-255)");
7.graphicsView 场景模块 导入超大图片
QPixmap pix(qstr2);
QGraphicsScene *scene = new QGraphicsScene(); //创建场景,载入图像
scene->addPixmap(pix.scaledToWidth(ui.graphicsView->width()));
ui.graphicsView->setScene(scene); //用控件显示这个场景
8.QT打开文件夹
QDesktopServices::openUrl(QUrl(qstr2));
7.QT限制edit只能输入数字 只有运行到这一行才能生效
ui.featureNumEdit->setValidator((new QIntValidator(ui.featureNumEdit)));