4.13+4.14实习日志 | QMainWindow
发布日期:2023-06-07 22:27:10 浏览次数:28 分类:技术文章

本文共 6405 字,大约阅读时间需要 21 分钟。

1 QMainWindow

QMainWindow是一个为用户提供主窗口程序的类,包含一个菜单栏(menu bar),多个工具栏(tool bars),多个锚接部件(dock widgets)(悬浮窗口),一个状态栏(status bar)以及一个中心部件(central widget)

只能有一个的set,可以有多个的是add;

每一个都得加头文件;

1.1菜单栏

//菜单栏最多只有一个。    //菜单栏创建,创建菜单栏对象bar,MenuBar已经在对象树中了    QMenuBar *bar= menuBar();    //将菜单栏放入到窗口中    setMenuBar(bar);    //创建菜单    QMenu *fileMenu = bar->addMenu("文件");    QMenu *editMenu = bar->addMenu("编辑");    //创建菜单项    QAction * newAcition = fileMenu->addAction("新建");    //添加分隔线    fileMenu->addSeparator();    QAction * openAction = fileMenu->addAction("打开");

1.2工具栏

//工具栏 可以有多个    QToolBar * toolBar = new QToolBar(this); //指定父类    addToolBar(Qt::LeftToolBarArea,toolBar); //默认停靠区域    //后期设置 只允许左右停靠    //toolBar ->setAllowedAreas(Qt::LeftToolBarArea | Qt::RightToolBarArea);    //设置浮动    toolBar->setFloatable(false);    //设置移动(总开关)    toolBar->setMovable(false);    //工具栏设置内容    toolBar->addAction(newAcition);    //添加分割线    toolBar->addSeparator();    toolBar->addAction(openAction);    //工具栏和菜单栏都有新建和打开,弄一个指针,后期直接设置    //工具栏中添加控件 (按钮也属于控价)    QPushButton *btn = new QPushButton("11",this);    toolBar->addWidget(btn);

1.3状态栏(标签信息)

//状态栏 最多有一个    QStatusBar *stBar = new QStatusBar();    //设置到窗口中    setStatusBar(stBar);    //放标签控件    QLabel * label = new QLabel("提示信息",this);    //把标签放上去    stBar->addWidget(label);    QLabel * label2 = new QLabel("右侧提示信息",this);    stBar->addPermanentWidget(label2);

1.4铆接部件=浮动部件

//锚接部件 浮动窗口 可以有多个(围绕着中心部件)    QDockWidget * dockWidget = new QDockWidget("浮动",this);    addDockWidget(Qt::BottomDockWidgetArea,dockWidget);    //后期设置停靠区域,只允许上下    dockWidget->setAllowedAreas(Qt::TopDockWidgetArea | Qt::BottomDockWidgetArea);

1.5中心部件

//设置中心部件  只能一个    QTextEdit * edit = new QTextEdit(this);    setCentralWidget(edit);

2 资源文件

2.1 资源文件添加

2.1.1新建资源文件

2.1.2 把图片都放到工程文件下,新建一个Image 

2.1.3再次打开,加入资源文件

右键点击-》open in editor -》new prefix->new file->选中图片

 

3.1.4使用——设置图标

":+前缀名+文件名“
//    //本地路径(不好)//    ui->actionnew->setIcon(QIcon("E:/QT/project/02_QtSource"));//文件路径用反斜杠    //使用添加Qt资源  ":+前缀名+文件名"(使用Qt资源好)    ui->actionnew->setIcon(QIcon(":/new/prefix1/Image/20230322171117.jpg"));    ui->actionopen->setIcon(QIcon(":/new/prefix1/Image/card.jpg"));

3 对话框

3.1点击一个按钮,弹出一个对话框

(1)模态对话框-阻塞;

(2)非模态对话框,防止一闪而过,创建堆区;

及时删除堆区          :dlg2->setAttribute(Qt::WA_DeleteOnClose);//55号 属性

//点击新建一个按钮,弹出一个对话框    connect(ui->actionnew,&QAction::triggered,[=](){        //对话框分类        //模态对话框(不可以对其他窗口进行操作),非模态对话框(可以对其他窗口进行操作)//        //创建模态对话框//        QDialog dlg(this);//        dlg.resize(200,100);//        dlg.exec();  //创建模态对话框//        qDebug()<<"模态对话框弹出了";          //创建非模态对话框          QDialog * dlg2=new QDialog(this);  //创建在堆上就不会闪现消失。          //虽然设置了父类,但是只有关闭主窗口才会析构,所以新弹出的非模态窗口要加一个关闭自己删除          dlg2->setAttribute(Qt::WA_DeleteOnClose);//55号 属性          dlg2->resize(200,100);          dlg2->show();  //创建非模态对话框          qDebug()<<"非模态对话框弹出了";

3.2标准对话框(系统提供的)

3.2.1消息对话框

(1)QMessageBox 中的静态成员函数,创建对话框

(2)参数1 父亲,参数2  标题 ,参数3 显示内容,参数4 按键类型,参数5 默认关联回车按键

(参数5只在提问对话框中有用)

(3)返回值standbutton,可以利用返回值判断用户的输入。

//消息对话框//            //错误对话框//            QMessageBox::critical(this,"critical","错误");//            //信息对话框//            QMessageBox::information(this,"info","信息");//            //提问对话框//            //参数1 父亲 参数2 标题 参数3 提示内容 参数4 按键类型 参数5 默认关联回车按键//            if (QMessageBox::Save == QMessageBox::question(this,"ques","提问",QMessageBox::Save|QMessageBox::Cancel))//            {//                qDebug()<<"选择的是保存";//                //可以在这写选择保存后的操作//            }//            else//            {//                qDebug()<<"选择的是取消";//            }            //警告对话框           QMessageBox::warning(this,"warn","警告");

3.2.2其他对话框(记得使用前添加头文件)

//其他标准对话框//           //颜色对话框//            QColor color = QColorDialog::getColor(QColor(255,0,0)); //看函数的返回值是什么类型,就自定义一个这个类型的对象去接收它//            qDebug()<<"r="<
<<"g="<
<<"b="<

 4 界面布局(UI界面里修改)

4.1拖拽

4.2布局(利用布局方式,给窗口进行美化)

4.2.1布局(选取Widget进行布局)

  • 水平布局
  • 垂直布局
  • 栅格布局  几行几列

①左侧 widget拖一个窗口

②把用户名 和 编辑框 放到窗口里

③选中,点击上侧 水平对齐  

④布局过的窗口右侧无红色标记,没布局的有红色标

 ⑤ 加弹簧 Spacer

 4.2.2弹簧固定默认控件与各窗口间距

编辑框密码passwprd

  5 控件

5.1Buttons  按钮控件

;

//设置单选按钮 男 为默认选中    ui->rBtnMan->setChecked(true);    //选中女后,打印信息    connect(ui->rBtnWoman,&QRadioButton::clicked,[=](){        qDebug()<<"nv";    });    //多选按钮  2是选中 0是未选中    connect(ui->cBox,&QCheckBox::stateChanged,[=](int state){    qDebug()<

 5.2 QlistWidget 列表容器

//    //利用listWidget 写诗//    QListWidgetItem *item = new QListWidgetItem("chrdw");//    //将一行诗放入到listwidget控件中//    ui->listWidget->addItem(item);//    //居中//    item->setTextAlignment(Qt::AlignHCenter);    //字符串数组    QStringList list;    list <<"chrdw"<<"hdhxt"<<"szbzc"<<"lljxk";    ui->listWidget->addItems(list);

5.3 QTreeWlidget 树控件

//treeWidget树控件使用    //设置水平头  QStringList()设置匿名对象    ui->treeWidget->setHeaderLabels(QStringList()<<"hero"<<"hero introduction");    QTreeWidgetItem *liItem = new QTreeWidgetItem(QStringList()<<"liliang");    QTreeWidgetItem *minItem = new QTreeWidgetItem(QStringList()<<"minjie");    QTreeWidgetItem *zhiItem = new QTreeWidgetItem(QStringList()<<"zhihui");    //加载顶层的节点    ui->treeWidget->addTopLevelItem(liItem);    ui->treeWidget->addTopLevelItem(minItem);    ui->treeWidget->addTopLevelItem(zhiItem);    //追加子节点    QStringList heroL1;    heroL1<<"gangbeizhu"<<"qianpaitanke";    QTreeWidgetItem *l1 = new QTreeWidgetItem(heroL1);    liItem->addChild(l1);

5.4TableWidget 表格控件

//tablewidget 控件    //设置列数column    ui->tableWidget->setColumnCount(3);    //设置水平表头    ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"xingming"<<"xingbie"<<"nianling");    //设置行数row    ui->tableWidget->setRowCount(5);    //设置正文    ui->tableWidget->setItem(0,0,new QTableWidgetItem("yase"));    QStringList nameList;    nameList<<"yase"<<"zhaoyun"<<"zhangfei"<<"huamulan";    QList
sexList; sexList<<"nan"<<"nan"<<"nan"<<"nv";//for 循环有问题// for (int i=0;i<5;i++)// {// int col=0;// ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));//索引数据,两种方式,越界,程序退出// ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexList.at(i)));//索引数据,at()更好,越界可以跳出异常// //int 转 QString// ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));// }

5.4 其他控件

5.4.1stackWidget栈控件(用按钮去控制切换不同控件页面)

 5.4.2 ComBox 下拉框

//下拉框    ui->comboBox->addItem("benchi");    ui->comboBox->addItem("baoma");    ui->comboBox->addItem("tuolaji");

 5.4.3 QLable 可以显示图片,动图(gif)

 

转载地址:https://blog.csdn.net/qq_49105197/article/details/130131032 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:lombok常用注解
下一篇:4.13 SpringMVC理论基础

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月18日 14时23分07秒