QMainWindow
#include <QMenuBar>
//创建菜单栏 最多有一个
QMenuBar *bar = menuBar();
//把菜单栏放在窗口中
this->setMenuBar(bar);
//创建菜单
QMenu *filename = bar->addMenu("文件");
QMenu *editname = bar->addMenu("编辑");
//创建菜单项
filename->addAction("新建");
filename->addAction("打开");
//添加分隔符
filename->addSeparator();
#include <QToolBar>
//工具栏.可以有多个
QToolBar *toolBar = new QToolBar(this);
//添加到主窗口,设置一开始的停靠方式是靠左停靠
this->addToolBar(Qt::LeftToolBarArea,toolBar);
//后期拖拽设置 只允许 左右停靠
toolBar->setAllowedAreas(Qt::LeftToolBarArea|Qt::RightToolBarArea);
//设置浮动
toolBar->setFloatable(false);//不能从主窗口脱离出来
//设置移动
toolBar->serMoveable(false);//不能移动
//在工具栏设置内容
toolBar->addAction(QAction("新建"));
//在工具栏添加控件
tooBar->addWidget(QPushButton());
//状态栏 最多有一个
#include <QStatuBar>
QStatusBar *stBar = statusBar();
this->setStatusBar(stBar);
//添加控件
stBar->addWidget(控件);//添加在左侧
stBar->addPermanentWidget(控件);//添加在右侧
//浮动窗口 可以多个
#include<QDockWidget>
QDockWidget *dockWid = new QDockWidget("浮动",this);//窗口标题,父节点
this->addDockWidget(Qt::bottomDockWidgetArea,dockWid);//设置浮动窗口默认位置在核心窗口下面
//设置后期停靠区域
dockWid->setAllowedAreas(Qt::LeftDockWidgetArea|Qt::RightDockWidgetArea);
//设置核心窗口,只能有一个
this->setCentralWidget(窗口类);
资源文件添加
1.先将资源文件复制到项目目录当中
2.项目(右键)->添加新文件->Qt->Qt Resource File->下一步
3.资源->res.qrc(右键)->Open in Editor->添加前缀->添加文件
//使用资源内的文件 规则是 ":+前缀名+文件名"
":/image/123.png"
模态,非模态
模态:与当前窗口交互中,不允许和其他窗口交互
非模态:可以与其他窗口进行操作
connect(ui->btn,&QPushButton::cliked,[=](){
QDialog dlg = new QDialog(this);
dlg.resize(150,50);
dlg.exec();//阻塞了 模态对话框
})
Item Widgets
List Widget
代码如下(示例):
QListWidgetItem *item = new QListWidgetItem("这是一行平平无奇的文字");
ui->listWidget->addItem(item);
item->setTextAlignment(Qt::AlignHCenter);//文字居中显示
//用数组的方式添加内容
ui->listWidget->addItem(QStringList()<<"这是一行字"<<"这是另外一行"<<"嘿嘿,还有一行");
Tree Widget
//设置水平头
ui->treeWidget->setHeaderLabels(QStringList()<<"这是第一行"<<"第二行在这");
QTreeWidgetItem *item1 = new QTreeWidgetItem(QString()<<"哈哈哈");
QTreeWidgetItem *item2 = new QTreeWidgetItem(QString()<<"嘻嘻嘻");
QTreeWidgetItem *item3 = new QTreeWidgetItem(QString()<<"嘿嘿嘿");
//添加顶层节点
ui->treeWidget->addTopLeavelItem(item1);
ui->treeWidget->addTopLeavelItem(item2);
ui->treeWidget->addTopLeavelItem(item3);
//追加节点
QTreeWidgetItem *item4 = new QTreeWidgetItem(QStringList()<<"直接点"<<"子节点");
item1->addChild(item4);
Table Widget
//设置列数
ui->tableWidget->setColumnCount(3);
//设置水平表头
ui->tableWidget->setHorizoneaderLabels(QStringList()<<"111"<<"222"<<"333");
//设置行数
ui->tableWidget->setRowCount(5);
//给0行0列设置内容
ui->tableWidget->setItem(0,0,new QTableWidgetItem("666"));
其他控件
栈控件和下拉框,调整选中状态
ui->stackedWidget->setCurentIndex(0);
ui->combox->setCurentIndex(0);