第二天:
对话框,布局,按钮
QMainWindow:菜单下拉框添加之后可通过ui->actionXXX(自定义的选项名)访问,用信号triggered发出信号,槽函数可以使用lambda表达式进行
//菜单栏(下拉框)connect(ui->actionopen,&QAction::triggered,this,[=](){qDebug("open action!");});
资源文件加载
对话框:基类:QDialog文件对话框;QMessageBox提示对话框;
创建一个对话框:
//增加一个模态对话框QDialog dlg(this);//传入父对象dlg.exec(); //会一直停在这,待窗口关闭则跳出向下执行//增加一个非模态对话框QDialog *dlg2 = new QDialog(this);//传入父对象,且为了不被立马析构所以new了一个对象dlg2->setAttribute(Qt::WA_DeleteOnClose);//窗口关闭自动析构dlg2->show();//非阻塞
QT类有关的,根据类名的信号和槽函数,能解决大部分的问题。
QMessageBox,使用帮助文档中重点关注静态函数(Static Public Members),例如about
QMessageBox::about(this,"QMessageBox","QMessageBox");
自定义按钮(增加按钮):critical为警告,information为提示,前面的图片显示不同,也可更改为warning,question等
if(QMessageBox::Ok == QMessageBox::critical(this,"QMessageBox","QMessageBox",QMessageBox::Ok | QMessageBox::Cancel)){qDebug()<<"QMessageBox::Ok";}
类似还有颜色(QColorDialog)和字体(QFontDialog)对话框,从对应的类中使用帮助文档中重点关注静态函数(Static Public Members),例如getColor
//颜色对话框,字体对话框QColor color = QColorDialog::getColor();qDebug()<<"color r:"<<color.red()<<"color g:"<<color.green()<<"color b:"<<color.blue();
控件:QListWidget,用于显示比较方便,用addItem直接添加,每添加一个addItem则添加一行
//方式1:帮助文档此构造函数void addItem(const QString &label)ui->listWidget->addItem("hello");//方式2:帮助文档此构造函数void addItem(QListWidgetItem *item) //因为是指针的形式,所以需要new一个对象ui->listWidget->addItem(new QListWidgetItem(QIcon("D:\\dotPic.bmp"),"pic"));
QTableWidget,表格控件(比QListWidget稍稍复杂一些,需要先设置行列数)
QScrollArea为滚动区域,添加滚动条
QLabe