QT-第二天QMainWindow

自古美人都是妖i 提交于 2020-02-18 18:00:48

菜单栏

  • 菜单栏最多有一个
  • 创建菜单栏:QMenuBar * menuBar = MenuBar()
  • 将菜单栏添加到当前窗口中:setMenuBar(menuBar)
  • 创建菜单:QMenu * filemenu = menubar->addMenu(“文件”)
  • 创建菜单项:QMenuAction * newAction = filemenu->addAction(“打开”);
  • 菜单项和菜单项之间添加分隔符:filemenu->addSeperator();

工具栏

  • 工具栏可以有多个
  • 创建工具栏:QToolBar * toolbar = new QToolBar(this);
  • 将工具栏放到当前窗口中 : addToolBar(默认停靠区域,toolbar);
  • 设置可停靠区域 设置是否可浮动 设置是否可移动
  • 在工具栏中添加菜内容 或者 控件

状态栏

  • 状态栏只能有一个
  • 创建状态栏:QStatusBar * stBar = statusBar();
  • 将状态栏放到窗口中:setStatusBar(stBar);
  • 状态栏中放置标签控件: QLabel * label = new QLabel(“左侧信息”, this); stBar->addWidget(label) ;放在左侧位置 stBar->addPermanentWidget(label)

铆接部件(浮动窗口)

  • 可以由多个
  • 创建浮动窗口 QDockWidget * dockWidget = new QDockWidget(this);
  • 将浮动窗口添加到当前窗口中 addDockWidget(Qt::BottomDockWidgetArea, dockWidget);
  • 设置浮动窗口可浮动的位置 dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea)

中间部件

  • 只能有一个,例如:中间位置放置记事本
  • 创建记事本:QTextEdit * edit = new QTextEdit();
  • 将中间部件放在窗口中 setCenterWidget(edit);

资源文件

  • 将资源文件拷贝到项目文件夹下
  • 创建新文件:右键项目–>点击添加新文件–>Qt下Qt resource file–>给文件起名字res–>默认生成res.qrc
  • 打开资源文件:右键资源文件–>open in editor 编辑资源文件
  • 编辑资源:先添加前缀 再添加文件
  • 使用资源:路径是 “: + 前缀名 + 文件名”

对话框

  • 分类:模态对话框(不允许对其他窗口进行操作)(阻塞),非模态对话框(允许对其他窗口进行操作)
  • 创建模态对话框:QDialog dlg(this); dlg.exec();//阻塞
  • 创建非模态对话框:防止一闪而过:创建到了堆区(指针变量)
    QDialog * dlg2 = new QDialog(this);
    dlg2->show();
    dlg2->setAttribute(Qt:WA_DeleteOnClose);//55号属性,关闭窗口时释放资源

标准对话框

  • QMessageBox: 静态成员函数,不用创建对象就可以直接访问

  • 错误对话框,信息对话框,提问对话框,警告对话框

  • 参数:
    参数1:父类
    参数2:对话框名称
    参数3:对话框显示的信息
    参数4:对话框中的按键
    参数5:对话框中和回车关联的按键

  • 返回值:StandardButton类型,可以通过函数的返回值来判断当前点击的是哪一个按钮

其他标准对话框

  • 颜色对话框:QColorDialog::getColor()
  • 文件对话框:QFileDialog::getOpenFileName(父亲,标题,默认路径,过滤文件)
  • 字体对话框:QFontDialog::getFont()

界面布局

  • 实现登录窗口
  • 布局:水平 垂直 栅格
  • 给用户名 密码 按钮等进行布局
  • 默认窗口和控件之间有9间隙,可以改变窗口中的layoutLeftMargin等改变间隙
  • 利用弹簧进行布局
  • 窗口的大小 可以通过修改垂直策略 水平策略来进行修改

按钮组

  • QPushButton:一般用来显示文字
  • QToolButton: 显示图片,也可以显示文字,toolButtonStyle:修改风格,凸起风格:autoRaise
  • QRadioButton:单选按钮,设置默认状态:ui->rBtnMan->setChecked(true)
  • QCheckBox:多选按钮,监听状态:2,选中;1:半选;0:未选

列表容器QListWidget

  • 设置一行内容 :QListWidgetItem * item = new QListWidgetItem(“锄禾日当午”);
    将这一行内容添加到列表容器中:ui->listWidget->addItem(item);
    设置该行的格式为水平居中:item->setTextAlignment(Qt::AlignHCenter);
  • 一次性设置多行内容:QStringList list;
    list << “锄禾日当午” << “汗滴禾下土”;
    添加到列表容器中ui->listWidget->addItems(list);

树控件QTreeWidget

  • 设置头:ui->treeWidget->setHeaderLabels(QStringList() << “fas” << “dfas”);
  • 创建根节点:QTreeWidgetItem * item = new QTreeWidgetItem(QStringList() << “sfda”);
  • 将根节点加入到根控件上:ui->treeWidget->addTopLevelItem(item);
  • 创建子节点:QTreeWidgetItem * it = new QTreeWidgetItem(QStringList() << “sfda” <<“fds”);
  • 将子节点添加到控件上:item->addChild(it);

表格控件QTableWidget

  • 设置表格列数:ui->tableWidget->setColumnCount(3);
  • 设置水平表头:ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<“name”<<“age”<<“sex”)
  • 设置表格行数:ui->tableWidget->setRowCount(5);
  • 设置表格内容:ui->tableWidget->setItem(0,0,QTableWidgetItem(“关羽”))

其他控件介绍

  • Stacked Widget:栈控件,ui->stackedWidget->setCurrentIndex(0);
  • Combo Box:下拉框控件,ui->comboBox->addItem(“baoma”);
  • QLabel:显示图片,ui->label->setPixmap(QPixmap(“路径名”))
  • QLabel:显示动图,ui->label_movie->setMovie(movie); movie->start();
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!