zoukankan      html  css  js  c++  java
  • Qt界面编程基本操作

    Qt界面编程基本操作

    了解基本代码构成

    类widget的头文件widget.h如下:

    #ifndef WIDGET_H
    #define WIDGET_H
    
    #include <QWidget>
    #include <QDebug>
    
    namespace Ui {
    class Widget;
    }
    
    class Widget : public QWidget
    {   //信号与槽相关宏
        Q_OBJECT
    
    public:
        //构造且使用explicit(显式)方式进行, parent = 0表示不指定父对象.
        explicit Widget(QWidget *parent = 0);
        ~Widget();
    
    private slots:
        //槽函数
        void on_pushButton_clicked();
        void on_pushButton_2_clicked();
    
    private:
        Ui::Widget *ui;
    };
    
    #endif // WIDGET_H
    

    常用基础知识

    查看帮助

    • 光标放到对应单词上, 点击F1, 即可进入对应单词的帮助.
    • Qt左边导航菜单进入帮助.
    • /Qt/Qt5.x/5.x/mingwxxx_xx/bin/assistant.exe

    添加C++11支持

    • CONFIG += C++11

    指定父对象的两种方式

    • 一种通过对象的setParent属性
    • 一种是构造对象时通过构造函数传参QPushButton(QWidget *p);
    • 好处:
      • 父窗口显示, 子窗口就显示(父对象要在子对象创建后调用show()).
      • 父窗口结束, 自动回收所有子窗口内存.

    新建多个窗口

    • 在添加类时选择Base Class, 一般选择Qwidget较多.
    • 多个窗口的头文件放到主窗口的头文件中, 作为主窗口的对象成员来使用.

    信号与槽

    • 信号函数和槽函数均没有返回值.
      1. connect(sender, signal, 接收对象, 槽函数), 每个参数都是指针类型:
    //按下按钮1, 则按钮2隐藏
    connect(&btn1, &QPushButton::pressed, &btn2, &QPushButton::hide);
    
      1. 转到槽

    对象的常见操作

    • 隐藏对象
    Obj.hide()
    
    • 显示对象
    Obj.show();
    
    • 设置对象的显示字符
    Obj.setText("xxx");
    
    • 移动对象
    Obj.move(100, 100)
    
    • 窗口持续运行等待用户操作, 该函数会造成窗口阻塞, 当创建模态对话框时, 调用此函数阻塞. 此函数之后的代码将在关闭窗口时执行.
    a.exec();
    
    • 设定窗口大小
    resize(400, 300);
    
    • 发送信号
      • 声明信号(信号没有返回值, 但可以有参数, 信号只需声明, 无需定义)
        signals:
        void mySignal();
    
    - 发送信号
    
        emit mySignal();
    
  • 相关阅读:
    Java 8 Lambda 表达式
    OSGi 系列(十二)之 Http Service
    OSGi 系列(十三)之 Configuration Admin Service
    OSGi 系列(十四)之 Event Admin Service
    OSGi 系列(十六)之 JDBC Service
    OSGi 系列(十)之 Blueprint
    OSGi 系列(七)之服务的监听、跟踪、声明等
    OSGi 系列(六)之服务的使用
    OSGi 系列(三)之 bundle 事件监听
    OSGi 系列(三)之 bundle 详解
  • 原文地址:https://www.cnblogs.com/linkyip/p/8546671.html
Copyright © 2011-2022 走看看