//主要使用类
#include <Qstring>
#include <QMenu>
#include <QMenuBar>
#include <QToolBar>
#include <QTextEdit>
#include <QDockWidget>
#include <QStatusBar>
#include <QLabel>
#include <QDialog>
#include <QMessageBox>
#include <QFileDialog>
QMenuBar类; 在windows平台下提供MenuBar()函数配合setMenuBar()使用;在mac中要建立共享菜单则要用new QMenuBar生成菜单栏;
QDialog类;其对象有模态与非模态窗口;可用exec()(使程序停留在此),或show()区分;在动作触发时创建的对象,可用setAttribute(设置对象属性)来设置消毁时机;
QMessageBox类,QFileDialog类,对静态成员的使用;
QMessageBox类中对按键的选择判断可用switch; 
//菜单栏
this->setMinimumSize(, );
QMenuBar *myBar = menuBar();
this->setMenuBar(myBar);
QMenu *File = new QMenu(QString("文件"));
myBar->addMenu(File); File->addAction(QString("新建"),[=]{ });
File->addSeparator();
File->addAction(QString("打开"), [=]{
QFileDialog::getOpenFileName(this, QString("打开文件"), QString("./"), QString("Images (*.png *.xpm *.jpg)"));
});
QAction *Abt = myBar->addAction(QString("模态"));
QAction *Abt1 = myBar->addAction(QString("非模态")); //工具栏
QToolBar *ToBar = new QToolBar;
this->addToolBar(ToBar);
ToBar->addAction(QString("新建"),[=]{ });
ToBar->addAction(QString("打开"), [=]{ });
//工作区
QTextEdit *txt1 = new QTextEdit;
this->setCentralWidget(txt1);
//悬浮窗
QDockWidget *dock = new QDockWidget(QString("txt"));
QTextEdit *txt2 = new QTextEdit;
dock->setWidget(txt2);
this->addDockWidget(Qt::RightDockWidgetArea, dock);
//状态栏
QStatusBar *StBar = new QStatusBar;
this->setStatusBar(StBar);
QLabel *Lab1 = new QLabel(QString("状态栏:"));
QLabel *Lab2 = new QLabel(QString(""));
StBar->addWidget(Lab1);
StBar->addPermanentWidget(Lab2); //模态对话框
connect(Abt, &QAction::triggered, [=]
{
QDialog *d1 = new QDialog;
d1->show();
d1->setAttribute(Qt::WA_DeleteOnClose);
});
//非模态
connect(Abt1, &QAction::triggered, [=]
{
QDialog *d2 = new QDialog;
d2->exec();
d2->setAttribute(Qt::WA_DeleteOnClose);
}); //MessageBox
QAction *about1 = myBar->addAction(QString("关于"));
connect(about1, &QAction::triggered, [=]
{
QMessageBox::about(this, QString("关于"), QString("关于qt"));
}); QAction *about2 = myBar->addAction(QString("保存/关闭"));
connect(about2, &QAction::triggered, [=]
{
QMessageBox::StandardButton i = QMessageBox::question(this, QString("关于2"), QString("多按键"),QMessageBox::Save | QMessageBox::Close);
switch(i)
{
case QMessageBox::Save:
{
Lab2->setText(QString("保存成功"));
}
break;
case QMessageBox::Close:
{
Lab2->setText(QString("关闭"));
}
break;
default:
break;
}
});
												

最新文章

  1. tzwhere模块 根据经纬度判断时区
  2. sql语句错误
  3. Java Io 之 编码
  4. 如何在Mvc 6 中创建 Web Api以及如何脱离IIS实现自我托管
  5. Maven 依赖管理
  6. Moduli number system
  7. bzoj 3632: 外太空旅行 最大团
  8. JS 某一区域内所有CheckBox全选和取消全选(.net)
  9. android-studio-bundle-141.2178183首次执行Hello World的时候出现ADB not responding. If you&#39;d like to retry, then please manually kill &quot;adb.e的错误
  10. RedHat 7.1 下安装 Zabbix监控程序详解(适合linux初级用户)
  11. android开发_文本按钮 与 输入框
  12. 【Python】【BugList13】req = requests.get(url=target)报错: (Caused by SSLError(SSLError(1, &#39;[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:777)&#39;)
  13. CentOS 7.2 下nginx SSL证书部署的方法(使用crt以及key 配置)
  14. Python设计模式 - UML - 包图(Package Diagram)
  15. js排序方法
  16. uniGUI试用笔记(九)
  17. sql条件查询-日期比较(取年月部分)
  18. LPC43xx SGPIO I2C Implementation
  19. LD算法的C++实现(基于编辑距离的文本比较算法)
  20. vue实现前端导出excel表格

热门文章

  1. 简单nginx代理配置
  2. [Python3] 038 函数式编程 偏函数
  3. failed to push some refs to &#39;git@github.com:cq1415583094/MyBatis.git&#39;解决办法
  4. 06: zabbix常见面试题
  5. python cx_oracle 环境搭建
  6. windows10升级更新1709版本 在桌面和文件夹中点击右键刷新,会引起卡顿反应慢
  7. namenode datanode理解
  8. Linux--Shell 编程-bash,命令替换,if分支嵌套,运算,输入输出
  9. STL源码阅读-traits与迭代器
  10. @Mapper和@Repository的区别