Qt小程序(二)-Qt Designer使用简单介绍

来源:互联网 发布:mac系统qq如何远程 编辑:程序博客网 时间:2024/06/06 13:00

目录

  • 目录
  • 前言
  • mainwindowui
    • Qt代码
  • 总结

前言

前面的Qt小程序(一)使用手动的方式创建的界面文件,这里使用ui文件创建一个界面文件

mainwindow.ui

打开mainwindow.ui,默认的窗口界面就有菜单栏工具栏中央窗口状态栏

  • 菜单栏可以直接输入菜单项,比如File。(注意:按回车表示成功创建一个菜单)
    File下可以通过回车建立这个菜单包含的操作action,比如New
    当我们创建action之后,在窗口管理器的下方就会有动作的一些属性。比如我创建的New动作,如图:
    1
    这时候,我们拖动这个action_New到工具栏,在工具栏就会有New这个按钮。
    1.1
    当然因为现在按钮没有对应的图标,所以显示的是文字。这时候就需要添加资源文件。
    选中action_New,在右侧选择icon,选择选择资源,然后添加对应的图标即可。注意:只有拖动到工具栏才会显示出icon
    1.2
    同理,选中action_New,在右侧选择shortcut,添入对应的快捷键
    同理,选择aciton New,右键转到槽,选择triggered,然后在mainwindow.cpp中就会出现需要写的槽函数。如图:
    1.3
    对应在mainwindow.h中也会有这个槽函数void on_action_New_triggered();

  • 菜单栏下面就是工具栏,我们可以右键添加工具栏

  • 对于中央窗口可以Text Edit作为中央窗口,直接拖拽一个Text Edit即可到布局管理器即可。
    注意:如果要设置Text Edit作为这个中央窗口,就需要设置布局。如果这时候直接右键Text Edit就会发现布局菜单的各种布局是灰色的,原因是布局是需要有参考的,我们需要设置主界面的布局,然后设置其他的窗口部件相对于主窗口的布局。
    2
    注意:点击的是主窗口,然后布局。之后才能设置Text Edit的布局。
    运行效果如图:
    3
    可以发现,Text Edit的边角太大,我们可以在窗口右侧先点击centralWidget,然后在右下角找到layoutLeftMargin等,通过设置Margin的大小来改变中央窗口部件里主窗口的距离。如图:
    4

Qt代码

  • main.cpp
#include "mainwindow.h"#include <QApplication>int main(int argc, char *argv[]){    QApplication a(argc, argv);    MainWindow w;    w.show();    return a.exec();}
  • mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{    Q_OBJECTpublic:    explicit MainWindow(QWidget *parent = 0);    ~MainWindow();private slots:    void on_action_New_triggered();private:    Ui::MainWindow *ui;};#endif // MAINWINDOW_H
  • mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include <QMessageBox>#include <QLabel>MainWindow::MainWindow(QWidget *parent) :    QMainWindow(parent),    ui(new Ui::MainWindow){    ui->setupUi(this);    QLabel* tipLabel = new QLabel(tr("ready"));    ui->statusBar->addWidget(tipLabel);}MainWindow::~MainWindow(){    delete ui;}void MainWindow::on_action_New_triggered(){    QMessageBox msgBox;    msgBox.setText(tr("New"));    msgBox.exec();}

总结

Qt的界面设计器设计界面就写代码的方式简单很多,做好记录,以后用到的时候有个参照,都是为了提高效率!!!

原创粉丝点击