当前位置:   article > 正文

初识-qt

初识-qt

1.qt的特点

跨平台: QT可以在市面上所有主流的操作系统上运行使用

2.QT的下载

http:// https://download.qt.io/archive/qt/

 .exe    //window平台的
                       .dmg  //苹果平台
                       .run    //linux平台

3.新建QT工程
               方法一:点击projects中的new这个按钮,会自动弹出对话框,新建QT工程
               方法二:点击文件,选择新建文件或者工程,也可以新建QT工程
      注意:工程名不要是中文,工程保存的路径也不能有中文

   2.分析QT工程的结构组成
         (1)工程配置文件  .pro文件
                    QT       += core gui   //给QT工程添加一些类库  core核心库  gui图形用户界面库
                    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets  //widgets窗口库
                    CONFIG += c++11   //使用c++11标准去编译
        (2)头文件  headers
                类的定义
        (3)源代码  sources
                int main(int argc, char *argv[])
               {
                    QApplication a(argc, argv);  //QApplication类用来管理QT工程(用来管理信号与槽,管理QT中的事件响应)
                    MainWindow w;  //创建一个主窗口对象
                    w.show();            //显示主窗口
                    return a.exec();  //进入事件循环(不断地帮你刷新主窗口)
               }

        (4)ui文件  forms
              你的QT程序中使用的ui界面就保存在这个ui文件中

 3.ui设计师界面使用

   1.跳转到ui设计师界面
              所见即所得,傻瓜式操作
              双击ui文件,自动跳转到ui设计师界面
     复制组件
             ctrl按住不松开,拖动组件即可复制

   2.常用的组件
          (1)标签   label --》类名 QLabel
                      作用:用来显示字符串
                      常用的属性: 
                                        geometry   设置位置坐标,设置宽和高
                                        font            设置标签上字体大小


          (2)单行输入框  lineedit --》类名QLineEdit
                      作用:用来获取键盘输入的文字内容
                      常用的属性: 
                                        geometry   设置位置坐标,设置宽和高
                                        font            设置输入框中字体大小
                                        placeholdertext   设置输入框默认提示信息
                                        echomode          设置输入框隐藏信息还是显示信息
                                                                       显示 --》normal
                                                                       隐藏 --》password
         (3)普通按钮    pushbutton --》类名QPushButton
                      常用的属性: 
                                        geometry   设置位置坐标,设置宽和高
                                        font            设置按钮上字体大小       
 

 4.QT中样式设计(qss语句的使用)


               什么是样式设计?  酷炫效果
                          类似于网页设计中的css,为了让你的QT界面更加的好看 
               如何跳到QT改变样式表的界面?
                          方法一: 右键点击组件,选择改变样式表即可
                          方法二: 点击属性中的styleSheet属性,也可以跳到样式表界面

 (1)常用的qss语句
                    font: 48pt "楷体";     //字体设置成楷体  48号字
                    color: rgb(255, 0, 0);  //前景色设置成(255, 0, 0)
                                                         按钮的前景色指的就是按钮上文字的颜色
                    background-color: rgb(0, 85, 255);  //背景色设置成(0, 85, 255)
                                                         按钮的背景色指的就是按钮背景的颜色
                    border-color:rgb(0, 85, 255);   //边框颜色设置成(0, 85, 255)
                    background-image: url(:/new/prefix1/pic/3.jpg);  //设置背景图片
                        background-image: url(你需要的图片的绝对路径);
                    border-image: url(:/new/prefix1/pic/2.jpg);      //设置边框图片(边框图片跟组件的大小保持一致)
                        border-image: url(你需要的图片的绝对路径); 
                    border-radius:15px;    //把倒角设置为15个像素
                                             倒角的大小不能超过组件高度的一半
                    border:2px solid#ff0000;  //把边框的宽度设置为2个像素,颜色设置成ff0000
                    QPushButton:pressed{  设置按钮按下的时候背景图片,主界面的样式中使用
                        background-image: url(:/button_down.png);
                    }
                    QPushButton:pressed#regBt{ 设置指定按钮regBt按钮按下时候背景图片,主界面的样式中使用
                        background-image: url(:/button_down.png);
                    }
                    QPushButton:hover{  主界面的样式中使用
                        background-color:#ff00ff;  鼠标进入控件设置背景颜色
                    }
                    QMainWindow{border-image: url(:/new/prefix1/pic/3.jpg);}  //让图片只作用于主窗口
                    注意注意注意: QT中的路径的写法
                                              本来路径: C:\Users\PC\Desktop\share\1.jpg
                                              QT要求写成: C:/Users/PC/Desktop/share/1.jpg
                    路径有两种:
                                             第一种:绝对路径,比如:C:/Users/PC/Desktop/share/1.jpg
                                             第二种:你添加了资源文件之后,写资源文件的相对路径,比如:border-image: url(:/new/prefix1/image/2.jpg);

        (2)给组件添加背景图片--》给你的QT工程添加资源文件 
                    资源文件:你的QT工程需要用到的外部文件都叫做资源文件,常见的资源文件有图片,音频文件,视频文件
            添加资源文件的步骤:
                    第一步:在你的QT工程文件夹中把要添加的图片保存到新建的文件夹中
                    第二步:右键点击工程名,选择add new--》选择QT,选择QT resources file --》点击add prefix,接着再点击add files --》会自动弹出文件对话框,找到自己要添加的图片,添加即可                                  

第三步:ctrl+s保存即可

温馨提示:

      方法一:QT中每个类的方法都很多,方法的名字都是一些英文单词,可以根据单词的意思大胆猜测函数的用途
                       方法二:单词看不懂,英文注释用法看不懂,翻译,翻译也看不懂,上百度(QT是比较成熟的开发平台,网络有很多的博客介绍各种各样的知识)
                       方法三:任何一个组件,你在ui设计师界面中见到的属性,在类中都有对应的函数去设置该属性
                                    设置属性的成员方法都有统一的命名规范:
                                                     setxxxxx()  //xxxxx就是你见到的某种属性的名字
                                                     比如:geometry --》函数setGeometry()
                                                               font          --》函数setFont()
                     
   2.QT助手的打开方法
              方法一:在QT安装程序中,有个assistant,你弄一个快捷方式到桌面,打开它就是QT助手
              方法二:在QT creator中帮助

 课后小作业:

用代码实现登录界面

思路步骤如下:

  nullptr等价于NULL
              父窗口:组件嵌套到哪个主窗口中,这个主窗口就是父窗口
              第一步:创建一个标签对象用来显示登录界面的标题
                           QLabel(const QString &text, QWidget *parent = nullptr)
                                          参数: text --》你的标签上要显示的文字信息
                                                     parent --》当前组件的父窗口指针
                          设置标签的属性--》位置坐标,宽高
                          void QWidget::setGeometry(int x, int y, int w, int h)  
                          设置标签上的字体
                          void setFont(const QFont &)
                                         参数:QFont --》QT中用来表示字体的一个类
                                                   QFont(const QString &family, int pointSize = -1)
                                                                        参数: family --》字体的名字
                                                                                pointSize --》字体大小
              第二步:创建两个输入框对象
                          QLineEdit(QWidget *parent = nullptr)
                                       参数:parent --》当前组件的父窗口指针
                          设置输入框的属性--》位置坐标,宽高
                          void QWidget::setGeometry(int x, int y, int w, int h) 
                          设置密码隐藏/显示
                          void setEchoMode(QLineEdit::EchoMode)
                                           参数: 枚举值    QLineEdit::Password   隐藏
                                                                    QLineEdit::Normal      显示
                          设置字符长度
                          void setMaxLength(int)
                          设置输入框默认提示信息
                          void setPlaceholderText(const QString &)
                          设置样式
                          void setStyleSheet(const QString &styleSheet)
                                          参数:styleSheet --》把qss语句当成字符串传递过来
               第三步:创建两个按钮对象
                          QPushButton(const QString &text, QWidget *parent = nullptr)
                                          参数: text --》你按钮上要显示的文字信息
                                                  parent --》当前组件的父窗口指针   

  1. #include "loginwin.h"
  2. #include <QApplication>
  3. #include <QLabel>
  4. #include <QFont>
  5. #include <QLineEdit>
  6. #include <QPushButton>
  7. int main(int argc, char *argv[])
  8. {
  9. QApplication a(argc, argv);
  10. loginwin w;
  11. //给主窗口设置边框图片
  12. w.setStyleSheet("QMainWindow{border-image:url(C:/Users/PC/Desktop/share/3.jpg);}");
  13. //给你主窗口设置任务栏图标
  14. QIcon icon("C:/Users/PC/Desktop/share/wlh.jpg");
  15. w.setWindowIcon(icon);
  16. //给主窗口设置标题
  17. w.setWindowTitle("我用代码写的登录界面");
  18. //准备一个标签
  19. QLabel mylb("欢迎使用智能家居系统",&w);
  20. //设置标签的位置宽高
  21. mylb.setGeometry(200,30,400,100);
  22. //设置标签上的字体
  23. QFont myfont("楷体",24);
  24. mylb.setFont(myfont);
  25. //准备两个输入框
  26. QLineEdit namele(&w);
  27. QLineEdit passwdle(&w);
  28. namele.setGeometry(250,120,300,40);
  29. passwdle.setGeometry(250,200,300,40);
  30. //设置输入框的默认提示信息
  31. namele.setPlaceholderText("请输入用户名");
  32. passwdle.setPlaceholderText("请输入密码");
  33. //设置账号,密码最大位数
  34. namele.setMaxLength(8);
  35. passwdle.setMaxLength(8);
  36. //设置密码隐藏
  37. passwdle.setEchoMode(QLineEdit::Password);
  38. //设置样式
  39. namele.setStyleSheet("border-radius:15px;border:2px solid#ff0000;");
  40. passwdle.setStyleSheet("border-radius:15px;border:2px solid#ff0000;");
  41. //准备两个按钮
  42. QPushButton bt1("登录",&w);
  43. QPushButton bt2("注册",&w);
  44. bt1.setGeometry(260,280,80,50);
  45. bt2.setGeometry(460,280,80,50);
  46. bt1.setEnabled(false);
  47. w.show();
  48. return a.exec();
  49. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/634557
推荐阅读
相关标签
  

闽ICP备14008679号