自己有接近2年的前端经验(html,js,jq,vue之类的),但是一直对QT不是很熟悉,之前零散的学了一些,但是平时不怎么做界面,这几天系统的学一下。
文档:
*Qt中的信号槽 | 爱编程的大丙 (subingwen.cn)
1、QCreate软件中添加 ui设计(.h,cpp,ui文件被创建)
2、修改对应的三个文件的代码
3、vs中对ui文件进行编译,生成ui_xxx.h文件
4、vs中对.h文件进行属性->常规 修改 项类型 为moc(不修改应该会报链接错误:virtual struct QMetaObject)
目录
1、创建项目
2、 点击按钮然后关闭
修改按钮为closeBtn
ui->closeBtn这里的ui指的是之前的ui界面
3、自定义信号槽
在主ui上添加hungry槽函数
hungry这个方法
发射一个信号,女朋友饿了这个信号
处理hungry的connect
女朋友这个对象,这是一个信号hungry
自己,代表信号接受者。eat为slots
女朋友的饿了发出的信号,和我接收的信号的处理方法eat()。需要进行一个连接
4、主页面点出产生模块框
主ui界面弄一个按钮modalDlg
创建下这个几个文件
这个类的ui涉及添加几个按钮并设置槽
在槽函数这边添加下代码
主mainwindow中增加槽函数的代码,dlg.exec()调用刚才创建的ui界面
继续测试更多状态,这里的1代表accept ,0代表reject。这里的值也就是代表了exec()的值
如果Done(6)
Done(0)
5、点击产生消息提示框
主页面添加一个btn,然后增加其槽函数
6、资源管理系统
主ui界面添加一个按钮
单文件
//单文件(png,jpg以及txt)
QString arg("Text fukes (*.txt)");
QString fileName=QFileDialog::getOpenFileName(
this,tr("Open File"),"e:\\temp",
tr("Images (*.png *.jpg);;Text files (*.txt)"), &arg);
QMessageBox::information(this,"打开文件","选择的文件是:"+fileName);
多文件
//多文件
QStringList fileNames=QFileDialog::getOpenFileNames(
this,tr("Open File"),"e:\\temp",
tr("Images (*.png *.jpg);;Text files (*.txt)"));
QString names;
for(int i=0;i<fileNames.size();++i){
names+=fileNames.at(i)+" ";
}
QMessageBox::information(this,"打开文件","选择的文件是:"+names);
保存
//保存
QString fileName=QFileDialog::getSaveFileName(this,"保存文件","e::\\temp");
QMessageBox::information(this,"保存文件","指定保存的数据文件是:"+fileName);