如何使用ui文件

PyQt 使用Qt Designer ui文件 首先用Qt Designer 创建窗体后,保存为form.ui 然后再cmd中输入 之后对应目录下生成ui_form.py的文件 附上pyuic4的帮助 阅读详情

如何使用ui文件

作者:王老师,华清远见嵌入式学院讲师。

这两天跟着班级辅导,总有学生感到很疑惑,用ui designer设计出来的ui文件是如何使用的,下面我从一个例子来说明下,希望能对有这样疑惑的同学有帮助。

事实上,现在有了继承设计工具qtcreator,作为开发者再也不用考虑这个问题,因为当你用qtcreator创建一个工程的时候,qtcreator提供的框架已经替我们完成了这个任务。

咱们先从这个程序开始看:

新建一个工程,

在这个工程中用ui designer来设计了这样的一个界面

这是我按ctrl+alt+r运行出来的,如何使这个利用ui designer设计出来的ui文件能运行起来就是我们这篇文章要议论的内容。

先来看看qtcreator提供的默认框架是如何实现的。要研究qtcreator怎么实现,就得先看dialog.h这个文件。

#ifndef DIALOG_H
        #define DIALOG_H

#include <QDialog>

namespace Ui {
                class Dialog;
        }

class Dialog : public QDialog {
                Q_OBJECT
        public:
                Dialog(QWidget *parent = 0);
                ~Dialog();

protected:
                void changeEvent(QEvent *e);

private:
                Ui::Dialog *ui;

private slots:
                void on_pushButton_clicked();
        };

#endif // DIALOG_H

观察不难得出,在上文中我用红色包含的就是实现这个程序的关键。它声明一个类,将设计出来的ui界面作为该类的一个子对象,在其构造函数中,先完成对子对象的构造,再使用子对象ui调用其setupUi(this)函数实现ui的现实。

Dialog::Dialog(QWidget *parent) :
                QDialog(parent),
                ui(new Ui::Dialog)
        {
                ui->setupUi(this);
        }

看完上面的代码,我们来分析下到底为什么要这样来使用ui文件。

在没有qtcreator之前,给了我们一个ui文件,该如何调用?

针对于ui文件,不知道大家知不知道uic这个工具,这是qt继承的一个工具,它可以利用ui生产.h文件。

uic dialog.ui –o tt.h

就生产了下面的文件:

/********************************************************************************
        ** Form generated from reading UI file 'dialog.ui'
        **
        ** Created: Sun May 9 17:29:42 2010
        **        by: Qt User Interface Compiler version 4.6.2
        **
        ** WARNING! All changes made in this file will be lost when recompiling UI file!
        ********************************************************************************/

#ifndef TT_H
        #define TT_H

#include <QtCore/QVariant>
        #include <QtGui/QAction>
        #include <QtGui/QApplication>
        #include <QtGui/QButtonGroup>
        #include <QtGui/QDialog>
        #include <QtGui/QHeaderView>
        #include <QtGui/QLabel>
        #include <QtGui/QPushButton>

QT_BEGIN_NAMESPACE

class Ui_Dialog
        {
        public:
                QLabel *label;
                QPushButton *pushButton;

        void setupUi(QDialog *Dialog)
                {
                        if (Dialog->objectName().isEmpty())
                        Dialog->setObjectName(QString::fromUtf8("Dialog"));
                        Dialog->resize(115, 148);
                        label = new QLabel(Dialog);
                        label->setObjectName(QString::fromUtf8("label"));
                        label->setGeometry(QRect(10, 30, 91, 21));
                        QFont font;
                        font.setPointSize(12);
                        font.setBold(true);
                        font.setWeight(75);
                        label->setFont(font);
                        pushButton = new QPushButton(Dialog);
                        pushButton->setObjectName(QString::fromUtf8("pushButton"));
                        pushButton->setGeometry(QRect(20, 80, 75, 23));

                retranslateUi(Dialog);

                QMetaObject::connectSlotsByName(Dialog);
                } // setupUi

        void retranslateUi(QDialog *Dialog)
                {
                        Dialog->setWindowTitle(QApplication::translate("Dialog",        "Dialog",        0,        QApplication::UnicodeUTF8));
                        label->setText(QApplication::translate("Dialog",        "hello,wang",        0,        QApplication::UnicodeUTF8));
                        pushButton->setText(QApplication::translate("Dialog",        "close",        0,        QApplication::UnicodeUTF8));
                } // retranslateUi

};

namespace Ui {
                class Dialog: public Ui_Dialog {};
        } // namespace Ui

QT_END_NAMESPACE

#endif // TT_H

通过观察我们会发现uic自动将我们设计的ui文件,生成了一个类,在此例中为class Ui_Dialog。事实上也是这样,uic会自动会利用设计好的ui生成一个包含类Ui_**的ui_**.h文件。那么在此例中,就会将我们设计好的dialog就会被uic文件解析,生成一个叫做ui_dialog.h的文件,此文件中包含Ui_Dialog的类。

那么总结出来,要让ui design设计出来的界面显示出来,只要能设法调用Ui_Dialog类的setupUi函数就行了。

一种简单的方法,直接使用,重新写一个这样的main函数。

#include <QtGui/QApplication>
        #include <QDialog>

#include "ui_dialog.h"
        int main(int argc, char *argv[])
        {
        QApplication a(argc, argv);
        Ui::Dialog ui;
        QDialog *d=new QDialog;
        ui. setupUi(d);
                d->show();
                return a.exec();
        }

第二种方法相对比较简单一点,就是将Ui::Dialog ui或Ui::Dialog *ui写成一个新定义类的一个数据成员,也就是qtcreator提供的那种方法。

#include <QDialog>
        #include "ui_dialog.h"

class Dialog : public QDialog {
                Q_OBJECT
        public:
                Dialog(QWidget *parent = 0);
                ~Dialog();

protected:
                void changeEvent(QEvent *e);

private:
                Ui::Dialog *ui;

private slots:
                void on_pushButton_clicked();
        };

这样使用的时候需要注意的是在初始化的时候要先完成子对象的初始化,在其构造函数中重写构造函数。

Dialog::Dialog(QWidget *parent) :
                QDialog(parent),
                ui(new Ui::Dialog)
        {
                ui->setupUi(this);
        }

第三种方法是以Ui_Dialog类为基类,派生一个新类,在该类的初始化函数中调用setupUi。

#ifndef DIALOG_H
        #define DIALOG_H

#include <QDialog>
        #include "ui_dialog.h"

class Dialog : public QDialog ,public Ui::Dialog
        {
                Q_OBJECT
        public:
                Dialog(QWidget *parent = 0);
        };

实现如下:

#endif // DIALOG_H
        #include "dialog.h"
        #include "ui_dialog.h"

Dialog::Dialog(QWidget *parent) :
                QDialog(parent),
                Ui::Dialog()
        {
                setupUi(this);
        }

希望通过讲解,大家能总结出该如何使用ui文件。无非就是利用默认工具uic自动产生的类,去调用该类的setui函数。第一种是直接使用,第二种是定义一个新类,声明一个ui子对象,第三种是将ui作为基类派生新的类。

[python][pyqt4] 在python中使用UI文件 本文主要总结了在python中使用UI文件的方法。 首先,想要在python中使用UI文件,需要将UI文件转为py文件。(如果无效,尝试将pyuic4文件放在同一个目录下) pyuic4 -o mainpage.py mainpage.ui如果UI文件中使用了资源qrc,需要将资源一并转为py文件: pyrcc4 -o resource_rc.py resource.qrc# 阅读详情

相关推荐

使用XML布局文件控制Android用户界面

通过使用XML布局文件,开发人员可以灵活地定义应用程序的布局结构和组件的位置,并将其与Java代码分离,使得界面设计和逻辑编程更加清晰和可维护。在上面的示例中,我们通过findViewById()方法获取了activity_main.xml布局文件中定义的TextView和Button组件,并将其分别赋值给textView和button变量。一旦XML布局文件与Activity关联起来,我们就可以通过findViewById()方法来获取XML布局文件中定义的UI组件,并对其进行操作或添加事件监听器。

IOWEL的博客 423

Qt中C++代码搭配UI文件实现交互界面

像使用Qt类一样随意使用ui,超乎想象一般的丝滑

liangyunshan123的博客 9177

Qt中UI文件的使用

在Qt Creator中,打开一个新的窗口或项目,然后选择"Design"选项卡进入Qt Designer,通过拖放各种控件和布局来设计应用程序的界面。Qt的UI文件(.ui)是一种XML格式的文件,用于描述应用程序的用户界面。在上述代码中,我们包含了自动生成的UI文件的头文件"ui_mainwindow.h",并在MainWindow类中声明了一个Ui::MainWindow对象ui。通过上述步骤,我们成功地将UI文件转换为可供应用程序使用的C++代码,并将界面应用于应用程序窗口。

DevAstro的博客 856

Qt - .ui 文件的使用

目录 工具栏 Dock Widget 代码控制 ui 添加资源 添加文件

AI工程化、开源分享、文档翻译、代码笔记 1133

【PySide6快速入门】ui文件的使用

在使用 PySide6 进行 GUI 开发时,UI 文件(通常为.ui后缀)提供了一个直观且方便的方式来设计用户界面。通过使用 Qt Designer 等工具,你可以在可视化界面中创建控件、设置属性、调整布局等,而无需手动编写大量的 UI 布局代码。这使得开发过程更加高效,并且易于维护和修改。本文将介绍 UI 文件的基本概念、功能,以及如何在 PySide6 中使用 UI 文件来创建应用程序界面。.ui。

m0_62599305的博客 1642

使用PyQt创建Python中的用户界面文件

PyQt是一个用于创建跨平台图形用户界面(GUI)的Python库。它提供了丰富的工具和组件,使开发者能够创建功能强大且具有吸引力的应用程序。本文将介绍如何使用PyQt中的UI文件来设计和构建用户界面,并提供相应的源代码示例。在开始之前,请确保已经安装了PyQt库。一旦安装完成,我们就可以开始创建用户界面文件了。用户界面文件使用.ui扩展名,并通过Qt Designer工具进行编辑和设计。Qt Designer是一个可视化的界面构建工具,可以轻松地拖放和布局各种UI组件。

RbvAlgorithm的博客 173

[编程语言][C++][Qt]单独添加UI文件

Qt中单独添加UI文件

火云的专栏 2228

STM32H750实战:如何用CubeMX配置NAND Flash时序(附常见问题排查)

本文详细解析了STM32H750通过CubeMX配置NAND Flash时序的实战技巧,包括硬件连接、时序参数计算与优化策略,以及常见问题如RGB屏幕干扰、多片选冲突的解决方案。特别针对NAND Flash的时序配置和抗干扰设计提供了实用代码示例和优化建议,帮助开发者提升系统稳定性和性能。

weixin_29176179的博客 365

Qt C++手动创建.ui文件并且与类进行绑定

前言:有的时候做一些新的窗口时,创建完.cpp和.h后发现没有.ui文件,有些控件纯代码实现就比较费时间,而且微调很麻烦。以下时近一段时间总结的手动给类创建.ui文件并且与所创建的类进行绑定。3.头文件的操作的结束了,之后来到对应的.cpp文件内。以上就是所有的步骤,在setupUi(this)的后面即可进行一些自己的操作来控制ui中所创建的一些控件。选择需要的控件类型,比如QStackedWidget类型。最后在构造函数里初始化ui界面 使用以下这段代码来进行初始化操作。

m0_68925706的博客 5145

DDR3性能优化实战:如何用Xilinx MIG控制器实现800MHz稳定读写(7系列FPGA版)

本文深入探讨了在Xilinx 7系列FPGA上使用MIG控制器实现DDR3存储器800MHz稳定高速读写的实战优化技巧。文章聚焦于高级时序调优、Bank Machine调度策略、用户接口设计优化以及利用ILA进行信号完整性调试,旨在帮助工程师突破性能瓶颈,实现接近理论峰值的稳定带宽,并为进一步冲刺更高频率提供进阶调参指南。

seed的博客 778

【智驾与大模型】端到端与多模态大模型的精彩之旅

智驾和大模型的回顾与展望。开头的笔者自述也说了些心窝子话,边缘计算的监管刻不容缓!

仿生实验室:从0到1,制作人脸表情交互机器人,记录过程,软硬件全部开源,与君共襄盛举! 1320

Qt中ui文件的使用

用designer设计的ui文件可以通过uic工具转换为

zzwdkxx的专栏 4万+

Wan 3.0提示词实战:从抄作业到改作业的完整技巧

AI视频生成中,提示词是决定成片质量的核心。视频模型依赖于文字约束来定义运动轨迹、镜头语言与物理合理性,提示词工程因此成为连接创意与技术的关键。本文从提示词的结构、资源获取、优化方法入手,结合Wan 3.0的模型特点,梳理了从官方模板到社区案例的实战路径,并强调运动一致性、风格词堆砌等常见问题。通过分解主体、动作、镜头等维度,帮助创作者快速找到适配的提示词,提升视频生成的稳定性与惊喜感。

weixin_29483277的博客 352

Python使用Qt的UI文件

qt的一个强大之后便是可以直观地使用 qt designer 设计界面,pyqt也可以使用这个ui文件,大大简化了ui的设计时间。 使用方法: 如果没有使用eric一类的IDE,那么可以使用命令行的方式将ui文件转化成.py文件,pyqt是自带pyuic.py这个工具的。 首先,必须在给python安装了pyqt,安装方法见http://blog.youkuaiyun.com/l

2736

Claude Code Cli 源码泄露事件全解析:从51万行代码中拆解AI Agent的记忆护城河

2026年3月,Anthropic的AI编程助手Claude Code意外泄露51万行核心代码,暴露了其多Agent架构、六级权限验证系统及创新的记忆机制。记忆系统采用四层设计:用户自定义框架、自动记忆提取、智能上下文压缩和纯文件存储。最独特的是"自动做梦"功能,AI会定期整理记忆,类似人类睡眠记忆巩固。代码还揭示未发布功能如电子宠物系统,但也暴露权限系统漏洞和代码质量问题。这次泄露展现了AI助手核心技术的复杂性,特别是其记忆系统如何通过透明可编辑的设计建立用户信任。

program哲学 469

全功能tgbot/Telegram机器人多功能有后台版源码

trx兑换 闪兑 关键字监控 群管 usdt监控 余额查询 推广分享 等几乎常见的tg机器人功能都有。全功能tgbot/telegram机器人多功能有后台版源码-打包好的可以直接上手。

百创科技 2702

【Android开发】用户界面设计-使用XML布局文件控制UI界面

效果图: 实现方法: MainActivity: package com.example.test; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onCreate(B

程序猿之洞 8006

SAP BSIS:总账未清项表(Open Items)总账未清项 包含哪些业务 请给以举例说明

SAP总账未清项是指需要未来核销的会计行项目,仅适用于勾选"未清项管理"的总账科目。典型业务场景包括:供应商预付款(借方未清项)、员工备用金(借方未清项)、客户预收款(贷方未清项)和保险理赔(借方未清项)。系统通过表BSIS/BSAS跟踪未清项,支持明细追踪和账实核对。核心价值在于提供总账级别的明细管理能力,确保往来款项完整清账,简化对账流程,满足特殊业务管理需求。可通过FBL3N事务码查询和管理所有总账未清项。

金牌架构师 724

在QT Creator中简单的使用UI文件来设计界面并在源码中使用ui文件

使用的是Qt Creator 2.3.0 基于Qt 4.7.4 (32 bit) 构建于01:25:02 Aug 31 2011 当我们想用QT来做一个有界面的程序的时候,打开QtCreator之后建立一个工程 然后在“界面文件”里面就会存在一个xxx.ui的文件 当我们双击这个文件的时候就会打开一个QT的界面设计器 我们可以拖取很多的控件摆放在上面,然后设置属性之类的 那现在我

xbl1986的专栏 1万+

Nova — GPU/vGPU 虚拟机

目录 文章目录目录云主机使用显卡的实现方式虚拟显卡物理显卡直通物理显卡虚拟化 云主机使用显卡的实现方式 采用虚拟显卡 采用物理显卡直通 采用物理显卡虚拟化 虚拟显卡 虚拟显卡技术,主要用于虚拟机 Remote Console 领域,如:VNC(Virtual Network Computing,虚拟网络计算机),它能将完整的窗口界面通过网络,传输到另一台计算机的屏幕上。 VNC 主要由 VNC server 和 VNC viewer 两部分组成。用户需先将 VNC server 安装在被远程操控的计算

烟云的计算 2428

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Qt .ui文件的使用

.ui 文件其实就一个标准 XML 格式的文本文件(感兴趣的读者可以用记事本打开看看),需要通过 uic 工具将其转换为项目里可用的 ui_*.h 头文件, 这个头文件里才是真正可用的 C++ 代码。 接下来我们以《Qt Designer的简单使用》中生成的 hello.ui 为例来讲解如何把 .ui 文件转换成 C++ 代码,以及如何使用 .ui 文件。 打开 Qt 命令行工具,进入 D:\QtDemo\ 文件夹: cd /d D:\QtDemo\ 执行 uic 命令: uic hello.ui -o u

qq_41854911的博客 8250

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

pyqt 使用 Qt Designer 设计的ui文件

qt的一个强大之后便是可以直观地使用 qt designer 设计界面,pyqt也可以使用这个ui文件,大大简化了ui的设计时间。 使用方法: 如果没有使用eric一类的IDE,那么可以使用命令行的方式将ui文件转化成.py文件,pyqt是自带pyuic.py这个工具的。 首先,必须在给python安装了pyqt,安装方法见http://blog.youkuaiyun.com/lainegate

LaineGates的专栏 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

QT中ui文件的使用方法

ui文件的使用是在Qt4中不太容易上手的一点,因为很多同学都是从Qt3升级到Qt4的,在升级过程中发现这部分的变化非常之大,让人有点无所适从。 Qt3的designer简直可以媲美一个ide,可以编辑代码,可以管理工程, 可是到了Qt4却仿佛是退化到了史前一万年,我们又来到那个茹毛饮血的蛮荒时代,工程管理的功能被彻底剔除到designer以外。 Trolltech这样做也是有道理的,

菜鸟天路 5360
上一篇: WinUSB
下一篇: RFC1939-POP3协议中文版
imsaws
博客等级 码龄18年 9粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值