c/c++语言开发共享QT中大部分部件如何使用举例详解

内容繁多,直接上代码重点请看mainwindow.cpp的中代码和ui如何设计的【1】main.cpp#include “mainwindow.h”#include <qapplication&

内容繁多,直接上代码

重点请看mainwindow.cpp的中代码和ui如何设计的

【1】main.cpp

#include "mainwindow.h"  #include <qapplication>    int main(int argc, char *argv[])  {      qapplication a(argc, argv);      mainwindow w;      w.show();      return a.exec();  }

【2】mainwindow.h

#ifndef mainwindow_h  #define mainwindow_h  #include<qpushbutton>  #include <qmainwindow>  #include <qtextcodec>//解决字符编码乱码问题  #include<qtextedit>  #include <qslider>//滑动杆  qt_begin_namespace  namespace ui { class mainwindow; }  qt_end_namespace    class mainwindow : public qmainwindow  {      q_object    public:      mainwindow(qwidget *parent = nullptr);      ~mainwindow();    public slots:    private slots:      void    textbutton_1();      void on_pbt_clicked();      void on_pbj_clicked();      void on_pbl_clicked();      void on_pushbutton_8_clicked();      void on_pushbutton_9_clicked();      void on_pushbutton_11_clicked();      void on_pushbutton_13_clicked();      void on_pushbutton_12_clicked();      void on_pushbutton_10_clicked();      void display(int);      void on_horizontalscrollbar_valuechanged(int value);      void on_verticalscrollbar_valuechanged(int value);      void on_horizontalslider_valuechanged(int value);      void on_verticalslider_valuechanged(int value);      void on_calendarwidget_clicked(const qdate &date);      void on_pushbutton_15_clicked();      void on_pushbutton_14_clicked();      void on_pushbutton_17_clicked();    private:      ui::mainwindow *ui;      qtextcodec *codec;      qstring filename;        qpushbutton* bt_filename;      qpushbutton* bt_getcolor;      qpushbutton* bt_getfont;      qpushbutton* bt_getinput;      qpushbutton* bt_error;      qpushbutton* bt_message;      qpushbutton* bt_progress;      qtextedit *te_test;        qpushbutton *p1;      qscrollbar *sb;    };  #endif // mainwindow_h

【3】mainwindow.cpp

#include "mainwindow.h"  #include "ui_mainwindow.h"  #include<qstring>  #include<qprogressbar>//进度条头文件  #include<qdebug>//控制台输出  //==========================布局管理器  #include<qvboxlayout>//水平  #include<qhboxlayout>//垂直  #include<qgridlayout>//网格  //==========================各大对话框类  #include<qcolordialog>  #include<qfiledialog>  #include<qinputdialog>  #include<qerrormessage>  #include <qprogressdialog>  #include <qfontdialog>  #include<qfiledialog>  #include<qmessagebox>  //文件读写  #include <qfile>  //行编辑  #include<qlineedit>  //滚动条  #include<qscrollbar>    //标签显示动画  #include<qmovie>  mainwindow::mainwindow(qwidget *parent)      : qmainwindow(parent)      , ui(new ui::mainwindow)  {      ui->setupui(this);        ui->progressbar->setvalue(0);      codec = qtextcodec::codecforname("gbk");//设置字符编码      codec->setcodecforlocale(codec);      setwindowtitle(codec->tounicode("ui学习笔记"));        ui->stackedwidget->setcurrentindex(0);//显示当前索引,第一页      //文件对话框      connect(ui->pushbutton_2,&qpushbutton::clicked,[&]{qstring filename =      qfiledialog::getopenfilename();ui->textedit_3->append(filename);});        //颜色对话框         connect(ui->pushbutton_3, &qpushbutton::clicked, [&](){             qcolor color = qcolordialog::getcolor();             ui->textedit_3->settextcolor(color);         });        //字体对话框         bool ok;         connect(ui->pushbutton_4,&qpushbutton::clicked,[&](){qfont font = qfontdialog::getfont(&ok);             if(ok)            {                 ui->textedit_3->setcurrentfont(font);             }         });           //输入对话框         connect(ui->pushbutton_5, &qpushbutton::clicked, [&](){             qstring str = qinputdialog::gettext(this, "title", "input");             ui->textedit_3->append(str);         });          //信息对话框         connect(ui->pushbutton_6,&qpushbutton::clicked,[&](){          int ret = qmessagebox::information(this,"title","you yyds",qmessagebox::ok,qmessagebox::apply,qmessagebox::close);          if(ret ==qmessagebox::ok)          {              ui->textedit_3->append("111111111111111111111111");          }         });      //错误对话框         connect(ui->pushbutton_7, &qpushbutton::clicked, [&](){             qerrormessage *error= new qerrormessage;             error->showmessage("error  error  error");         });      }    mainwindow::~mainwindow()  {      delete ui;    }    //浏览按钮  void mainwindow::on_pbl_clicked()  {      filename = qfiledialog::getopenfilename();//文件对话框      ui->lineedit->settext(filename);  }    //加密按钮  void mainwindow::on_pbj_clicked()  {      //读写文件打开      qfile f(filename);      if(!f.open(qiodevice::readwrite))          return;      //读取全部内容      qbytearray buf = f.readall();      ui->textedit->append(codec->tounicode(buf));//加密前      ui->progressbar->setrange(0,buf.length()-1);        for(int i=0; i<buf.length();i++)      {          buf[i]=~buf[i];          ui->progressbar->setvalue(i);//进度条      }      ui->textedit_2->append(codec->tounicode(buf));//加密后      //回写      f.seek(0);      f.write(buf);      //关闭      f.close();  }  //下一页  void mainwindow::on_pbt_clicked()  {      ui->stackedwidget->setcurrentindex(1);  }    //上一页:  void mainwindow::on_pushbutton_8_clicked()  {      ui->stackedwidget->setcurrentindex(0);  }    //下一页  void mainwindow::on_pushbutton_9_clicked()  {      ui->pushbutton->seticonsize(qsize(80,80));//设置按钮图标大小      //ui->pushbutton->setflat(true);//设置无边框      ui->pushbutton->seticon(qicon("c:/users/sujieyin/pictures/saved pictures/1.png"));      ui->pushbutton->show();        ui->toolbutton->seticonsize(qsize(50,50));      //ui->toolbutton->seticon(qicon("c:/users/sujieyin/pictures/saved pictures/1.png"));      ui->toolbutton->settooltip("tip");//选中按钮时,会有提示文字      ui->toolbutton->settext("toolbutton");      ui->toolbutton->show();      //绑定快捷键      ui->toolbutton->setshortcut(qkeysequence(qt::ctrl+qt::key_w));      connect(ui->toolbutton,signal(clicked(bool)),this,slot(textbutton_1()));        //radiobutton_2设置图标      ui->radiobutton_2->seticon(qicon("c:/users/sujieyin/pictures/saved pictures/1.png"));      ui->radiobutton_2->click();//选中按钮      ui->radiobutton_2->setenabled(true);//设置使能      connect(ui->radiobutton_2, &qradiobutton::clicked, [&](){//lamda表达式(无名函数)          qdebug()<<"radiobutton_2";      });      //checkbox按钮      ui->checkbox_2->seticon(qicon("c:/users/sujieyin/pictures/saved pictures/1.png"));      connect(ui->checkbox_2, &qradiobutton::clicked, [&](){//lamda表达式(无名函数)          qdebug()<<"checkbox_2";      });         //行编辑框使用举例      ui->lineedit_2->setechomode(qlineedit::password);//行编辑框输入隐藏      //选中检查框,显示密码,      connect(ui->checkbox_3,&qcheckbox::clicked,[&](bool x){             ui->lineedit_2->setechomode(x?qlineedit::normal:qlineedit::password);      } );        ui->stackedwidget->setcurrentindex(2);//显示这一页的所有部件  }    //快捷键和单击按钮都可以触发  void mainwindow::textbutton_1()  {      qdebug()<<"ctrl+w";  }      //下一页:实现输入小部件类组件  void mainwindow::on_pushbutton_13_clicked()  {      //组合k框      ui->combobox->additem("com1");      ui->combobox->additem("com2");      //点击文本后,显示文本      connect(ui->combobox,&qcombobox::currenttextchanged,[&](qstring x){             ui->label_5->settext(x);});        //字体选择框      connect(ui->fontcombobox,&qfontcombobox::currentfontchanged,[&](qfont x){      ui->label_6->setfont(x);      ui->label_6->settext("okko");      ui->lineedit_3->setfont(x);      ui->textedit_4->setcurrentfont(x);      ui->plaintextedit->settooltip("123");//设置提示      ui->plaintextedit->appendplaintext("https://");//显示文本      });        //自旋框      ui->spinbox->setrange(0,10);//设置取值范围      connect(ui->spinbox,signal(valuechanged(int)),ui->lcdnumber,slot(display(int)));       ui->stackedwidget->setcurrentindex(3);         //旋钮       connect(ui->dial,signal(valuechanged(int)),ui->lcdnumber,slot(display(int)));           //滚动条       //sb= new qscrollbar;//没有指定窗口,会自己弹出一个窗口;       sb= new qscrollbar(ui->page_4);//只显示在这页【重点】       sb->setorientation(qt::horizontal);//设置水平方向       sb->setgeometry(20,500,100,10);       sb->show();       connect(sb,signal(valuechanged(int)),ui->lcdnumber,slot(display(int)));          ui->stackedwidget->setcurrentindex(3);  }  //上一页  void mainwindow::on_pushbutton_12_clicked()  {    ui->stackedwidget->setcurrentindex(1);  }    //下一页【第5页】  void mainwindow::on_pushbutton_11_clicked()  {        ui->label_8->setalignment(qt::aligncenter);//水平居中      ui->label_8->setscaledcontents(true);//设置标签自动缩放上面的图片      ui->label_8->setpixmap(qpixmap("c:/users/sujieyin/pictures/saved pictures/2.png"));         ui->label_9->setalignment(qt::aligncenter);//水平居中       ui->label_9->setfixedsize(200,120);       qmovie *m = new qmovie("c:/users/sujieyin/pictures/saved pictures/1.gif");       ui->label_9->setmovie(m);//设置动画       ui->label_8->setscaledcontents(true);//设置标签自动缩放上面的图片      m->start();//开启动画        //文本浏览框      ui->textbrowser->sethtml(codec->tounicode("<!doctype html>                               <html>                               <head>                               <meta charset="utf-8">                               <title>菜鸟教程(runoob.com)</title>                               </head>                               <body>                                   <h1>我的第一个标题</h1>                                   <p>我的第一个段落。</p>                               </body>                               </html>"));        //图形视图框架      //日历      ui->stackedwidget->setcurrentindex(4);  }  //上一页【第4页】  void mainwindow::on_pushbutton_10_clicked()  {      ui->stackedwidget->setcurrentindex(2);  }    //点击spinbox显示lcdnumber  void mainwindow::display(int i)  {      ui->lcdnumber->setminimumheight(i);//设置最小行高  }    //水平滑动条  void mainwindow::on_horizontalscrollbar_valuechanged(int value)  {         ui->lcdnumber->display(value);//显示值  }    //垂直滚动条  void mainwindow::on_verticalscrollbar_valuechanged(int value)  {      ui->verticalscrollbar->setrange(0,100);      ui->lcdnumber->display(value);//显示值  }    //水平滑动滚动条  void mainwindow::on_horizontalslider_valuechanged(int value)  {      ui->lcdnumber->display(value);//显示值  }  //垂直滑动滚动条  void mainwindow::on_verticalslider_valuechanged(int value)  {       ui->lcdnumber->display(value);//显示值  }  //==================================================    //单击日历时显示  void mainwindow::on_calendarwidget_clicked(const qdate &date)  {      ui->textbrowser->settext(date.tostring());  }    //上一页  void mainwindow::on_pushbutton_15_clicked()  {      qdebug()<<"======================="<<endl;      ui->stackedwidget->setcurrentindex(3);  }  //下一页  void mainwindow::on_pushbutton_14_clicked()  {        //groupbox容器      ui->radiobutton->setchecked(true);//设置检查      ui->verticallayout_2->addstretch(1);//添加伸长      ui->groupbox->setlayout(ui->verticallayout_2);//添加垂直部件        //scrollarea滚动窗口容器     ui->label_11->setpixmap(qpixmap("c:/users/sujieyin/pictures/saved pictures/2.png"));     ui->scrollarea->setwidget(ui->label_11);//添加这个标签组件     ui->horizontallayout_3->addwidget(ui->scrollarea);//添加进水平部件     setlayout(ui->horizontallayout_3);//显示这个水平部件        //tool box工具箱      ui->toolbox->additem(ui->textedit_5,codec->tounicode("工具1"));      ui->toolbox->additem(ui->textedit_6,codec->tounicode("工具2"));        //tabwidget 选项卡-分页显示      ui->tabwidget->settabsclosable(true);//关闭      ui->tabwidget->addtab(ui->textedit_7,"t");      ui->tabwidget->addtab(ui->textedit_8,"b");      //点击x号后显示对应的文本      connect(ui->tabwidget,&qtabwidget::tabcloserequested,[&](int x){          ui->textedit_7->append(qstring::number(x).toutf8());          ui->textedit_8->append(qstring::number(x).toutf8());      });         //stackedwidget 堆叠窗口类      //本教程使用的就是这个部件,来达到上一页和下一页之间的切换,不在过多解释        //mdiarea 多媒体窗口      ui->mdiarea->addsubwindow(ui->textedit_9);//添加子窗口      ui->mdiarea->addsubwindow(ui->textedit_10);        ui->stackedwidget->setcurrentindex(5);  }    //上一页  void mainwindow::on_pushbutton_17_clicked()  {      ui->stackedwidget->setcurrentindex(4);  }

【4】ui界面设计

对象和类的布局和定义位置,位置很重要

QT中大部分部件如何使用举例详解

QT中大部分部件如何使用举例详解

QT中大部分部件如何使用举例详解

【5】代码运行效果图

文件对话框,加密,显示在第一页

QT中大部分部件如何使用举例详解

6大对话框在第二页

QT中大部分部件如何使用举例详解

按钮类举例

QT中大部分部件如何使用举例详解

输入小部件类和显示文本部件类和滑动部件类

QT中大部分部件如何使用举例详解

日期,文本框,图片,gif图

QT中大部分部件如何使用举例详解

容器部件类使用举例

QT中大部分部件如何使用举例详解

总结

在后期,我将qt全部学习内容,做成应用程序游戏软件,以软件的形式活学活用,工程庞大,目前正在筹划,尽情期待

需要了解更多c/c++开发分享QT中大部分部件如何使用举例详解,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/1237596.html

(0)
上一篇 2022年9月10日
下一篇 2022年9月10日

精彩推荐