标题
1、QMainWindow
1.1 菜单栏 最多有一个
- QMenuBar * bar = MenuBar();
- setMenuBar( bar )
- QMenu * fileMenu = bar -> addMenu(“文件”) 创建菜单
- QAction * newAction = fileMenu ->addAction(“新建”); 创建菜单项
- 添加分割线 fileMenu->addSeparator();
1.2 工具栏 可以有多个
- QToolBar * toolbar = new QToolBar(this);
- addToolBar( 默认停靠区域, toolbar ); Qt::LeftToolBarArea
- 设置 后期停靠区域,设置浮动,设置移动
- 添加菜单项 或者添加 小控件
1.3 状态栏 最多一个
- QStatusBar * stBar = statusBar();
- 设置到窗口中 setStatusBar(stBar);
- stBar->addWidget(label);放左侧信息
- stBar->addPermanentWidget(label2); 放右侧信息
1.4 铆接部件 浮动窗口 可以多个
- QDockWidget
- addDockWidget( 默认停靠区域,浮动窗口指针)
- 设置后期停靠区域
1.5 设置核心部件 只能一个
- setCentralWidget(edit);
2 资源文件
- 将图片文件 拷贝到项目位置下
- 右键项目->添加新文件 –> Qt - > Qt recourse File - >给资源文件起名
- res 生成 res.qrc
- open in editor 编辑资源
- 添加前缀 添加文件
- 使用 “ : + 前缀名 + 文件名 ”
3 对话框
3.1 分类 :
模态对话框: 不可以对其他窗口进行操作 阻塞
- QDialog dlg(this)
- dlg.exec();
非模态对话框: 可以对其他窗口进行操作
- 防止一闪而过 创建到堆区
- QDialog * dlg = new QDialog(this)
- dlg->show();
- dlg2->setAttribute(Qt::WA_DeleteOnClose); //55号 属性
3.2 标准对话框 – 消息对话框
- QMessageBox 静态成员函数 创建对话框
错误、信息、提问、警告
- 参数1 父亲 参数2 标题 参数3 显示内容
参数4按键类型
参数5 默认关联回车按键 返回值 也是StandardButton类型
,利用返回值判断用户的输入
3.3 其他标准对话框
- 颜色对话框 QColorDialog::getColor
- 文件对话框 QFileDialog::getOpenFileName(父亲,标题,默认路径,过滤文件)
- 字体对话框 QFontDialog::getFont
4 界面布局
- 实现登陆窗口
- 利用布局方式 给窗口进行美化
- 选取 widget 进行布局 ,水平布局、垂直布局、栅格布局
- 给用户名、密码、登陆、退出按钮进行布局
- 默认窗口和控件之间 有9间隙,可以调整 layoutLeftMargin
- 利用弹簧进行布局
5 控件
5.1 按钮组
- QPushButton 常用按钮
- QToolButton 工具按钮 用于显示图片,如图想显示文字,修改风格:toolButtonStyle , 凸起风格:autoRaise
- radioButton 单选按钮,设置默认 ui->rBtnMan(对象)->setChecked(true);
- checkbox多选按钮,监听状态,2 选中 1 半选 0 未选中
5.2 QListWidget 列表容器
- QListWidgetItem * item; 一行内容
ui->listWidget ->addItem ( item )
设置居中方式item->setTextAlignment(Qt::AlignHCenter); QStringList list; 多行内容
利用addItems一次性添加整个诗内容
5.3 QTreeWidget 树控件
- 设置头
ui->treeWidget->setHeaderLabels(QStringList()<< “英雄”<< “英雄介绍”); - 创建根节点(QTreeWidgetItem类)
QTreeWidgetItem * liItem = new QTreeWidgetItem(QStringList()<< “力量”); - 添加根节点 到 树控件上
ui->treeWidget->addTopLevelItem(liItem); - 添加子节点(QStringList类)
liItem->addChild(l1);
5.4 QTableWidget 表格控件
- 设置列数
ui->tableWidget->setColumnCount(3); - 设置水平表头
-ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<“姓名”<< “性别”<< “年龄”); - 设置行数
ui->tableWidget->setRowCount(5); - 设置正文
ui->tableWidget->setItem(0,0, new QTableWidgetItem(“亚瑟”));
5.5 其他控件介绍
- stackedWidget 栈控件
ui->stackedWidget->setCurrentIndex(1); - 下拉框
ui->comboBox->addItem(“奔驰”); - QLabel 显示图片
ui->lbl_Image->setPixmap(QPixmap(":/Image/butterfly.png")) - QLabel显示动图 gif图片
ui->lbl_movie->setMovie(movie);
movie->start();
到此总结:
- QT界面就是“
类之间的继承,对象属性的调整,界面布局调整
”,控件添加功能就是修改空间类的成员函数
。 - 文档查询是个好方法。
- 常用字符串类型:
QString == string == char *;
QStringList == QList< QString > == list< string >(C++容器);
给对象传字符时一般都转化为它自己的字符类型。 - 感觉常用控件都是调调自己属性或在代码里调调成员函数;
container里的框架都是为了协助小控件界面布局的
,对每个控件操作之间操作对象,不用管框架。 - 一般写界面都是使用
QMainWindow类
。