尝试PySlide2开发Qt图形界面

标签: Python

1、在QtCreator中新建Qt ->Qt Designed Form

2、选择Widget

3、命名及确认路径

名称:frmMqtt.ui

4、制作图形界面如下,保存为.ui文件

5、通过命令行转换:pyside2-uic frmMqtt.ui > frmMqtt.py

转换后的py文件如下:

# -*- coding: utf-8 -*-

################################################################################
## Form generated from reading UI file 'frmMqtt.ui'
##
## Created by: Qt User Interface Compiler version 5.14.1
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################

from PySide2.QtCore import (QCoreApplication, QMetaObject, QObject, QPoint,
    QRect, QSize, QUrl, Qt)
from PySide2.QtGui import (QBrush, QColor, QConicalGradient, QCursor, QFont,
    QFontDatabase, QIcon, QLinearGradient, QPalette, QPainter, QPixmap,
    QRadialGradient)
from PySide2.QtWidgets import *


class Ui_Form(object):
    def setupUi(self, Form):
        if Form.objectName():
            Form.setObjectName(u"Form")
        Form.resize(915, 663)
        self.btn_Conn = QPushButton(Form)
        self.btn_Conn.setObjectName(u"btn_Conn")
        self.btn_Conn.setGeometry(QRect(780, 20, 121, 51))
        font = QFont()
        font.setFamily(u"Arial")
        font.setPointSize(10)
        self.btn_Conn.setFont(font)
        self.lbl_BrokerAddr = QLabel(Form)
        self.lbl_BrokerAddr.setObjectName(u"lbl_BrokerAddr")
        self.lbl_BrokerAddr.setGeometry(QRect(10, 20, 121, 16))
        self.lbl_BrokerAddr.setFont(font)
        self.lbl_BrokerAddr.setLayoutDirection(Qt.LeftToRight)
        self.lbl_BrokerPort = QLabel(Form)
        self.lbl_BrokerPort.setObjectName(u"lbl_BrokerPort")
        self.lbl_BrokerPort.setGeometry(QRect(10, 50, 121, 16))
        self.lbl_BrokerPort.setFont(font)
        self.lne_BrokerAddr = QLineEdit(Form)
        self.lne_BrokerAddr.setObjectName(u"lne_BrokerAddr")
        self.lne_BrokerAddr.setGeometry(QRect(140, 20, 481, 21))
        font1 = QFont()
        font1.setFamily(u"Arial")
        self.lne_BrokerAddr.setFont(font1)
        self.lne_BrokerPort = QLineEdit(Form)
        self.lne_BrokerPort.setObjectName(u"lne_BrokerPort")
        self.lne_BrokerPort.setGeometry(QRect(140, 50, 111, 21))
        self.lne_BrokerPort.setFont(font1)
        self.lbl_ClientID = QLabel(Form)
        self.lbl_ClientID.setObjectName(u"lbl_ClientID")
        self.lbl_ClientID.setGeometry(QRect(300, 50, 121, 16))
        self.lbl_ClientID.setFont(font)
        self.lne_ClientID = QLineEdit(Form)
        self.lne_ClientID.setObjectName(u"lne_ClientID")
        self.lne_ClientID.setGeometry(QRect(410, 50, 211, 21))
        self.lne_ClientID.setFont(font1)
        self.txt_MsgRecv = QTextBrowser(Form)
        self.txt_MsgRecv.setObjectName(u"txt_MsgRecv")
        self.txt_MsgRecv.setGeometry(QRect(10, 220, 891, 431))
        self.txt_MsgRecv.setFont(font1)
        self.label = QLabel(Form)
        self.label.setObjectName(u"label")
        self.label.setGeometry(QRect(690, 20, 68, 51))
        self.label.setLineWidth(2)
        self.label.setScaledContents(False)
        self.lbl_MsgRecv = QLabel(Form)
        self.lbl_MsgRecv.setObjectName(u"lbl_MsgRecv")
        self.lbl_MsgRecv.setGeometry(QRect(10, 200, 161, 16))
        self.lbl_MsgRecv.setFont(font)
        self.lbl_Topic = QLabel(Form)
        self.lbl_Topic.setObjectName(u"lbl_Topic")
        self.lbl_Topic.setGeometry(QRect(10, 100, 71, 21))
        self.lbl_Topic.setFont(font)
        self.lne_Topic = QLineEdit(Form)
        self.lne_Topic.setObjectName(u"lne_Topic")
        self.lne_Topic.setGeometry(QRect(60, 100, 701, 31))
        self.lne_Topic.setFont(font1)
        self.btn_Sub = QPushButton(Form)
        self.btn_Sub.setObjectName(u"btn_Sub")
        self.btn_Sub.setGeometry(QRect(780, 100, 121, 41))
        self.btn_Sub.setFont(font)
        self.lne_Msg2Send = QLineEdit(Form)
        self.lne_Msg2Send.setObjectName(u"lne_Msg2Send")
        self.lne_Msg2Send.setGeometry(QRect(10, 160, 751, 31))
        self.lne_Msg2Send.setFont(font1)
        self.lbl_MsgRecv_2 = QLabel(Form)
        self.lbl_MsgRecv_2.setObjectName(u"lbl_MsgRecv_2")
        self.lbl_MsgRecv_2.setGeometry(QRect(10, 140, 161, 16))
        self.lbl_MsgRecv_2.setFont(font)
        self.btn_Pub = QPushButton(Form)
        self.btn_Pub.setObjectName(u"btn_Pub")
        self.btn_Pub.setGeometry(QRect(780, 160, 121, 41))
        self.btn_Pub.setFont(font)

        self.retranslateUi(Form)

        QMetaObject.connectSlotsByName(Form)
    # setupUi

    def retranslateUi(self, Form):
        Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None))
        self.btn_Conn.setText(QCoreApplication.translate("Form", u"Connnect", None))
        self.lbl_BrokerAddr.setText(QCoreApplication.translate("Form", u"Broker Address:", None))
        self.lbl_BrokerPort.setText(QCoreApplication.translate("Form", u"Broker Port:", None))
        self.lbl_ClientID.setText(QCoreApplication.translate("Form", u"Client ID:", None))
        self.label.setText("")
        self.lbl_MsgRecv.setText(QCoreApplication.translate("Form", u"Mesages Received", None))
        self.lbl_Topic.setText(QCoreApplication.translate("Form", u"Topic:", None))
        self.btn_Sub.setText(QCoreApplication.translate("Form", u"Subscribe", None))
        self.lbl_MsgRecv_2.setText(QCoreApplication.translate("Form", u"Mesages to send:", None))
        self.btn_Pub.setText(QCoreApplication.translate("Form", u"Publish", None))
    # retranslateUi

6、打开此py文件,此文件只是生成窗体的代码,需添加生成实例与启动代码

7、在此仅做个测试,通过点击按钮,改变label的text属性

class frmMain(QMainWindow, Ui_Form):
    def __init__(self):
        super(frmMain, self).__init__()
        self.setupUi(self)
        self.assignWidgets()
        self.show()

    def assignWidgets(self):
        self.btn_Conn.clicked.connect(self.mConn())

    def mConn(self):
        self.label.setText("Disconnect")
        self.label.setStyleSheet("background-color:rgb(255,80,0)")


if __name__ == '__main__':
    app = QApplication()
    mainWin = frmMain()
    ret = app.exec_()
    sys.exit(ret)

至此,可以运行程序,显示界面了。

遗留问题:启动后,系统自动执行了clicked事件,在之前的测试中没有出现,不清楚为什么

版权声明:本文为cquyyang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/cquyyang/article/details/104890687

智能推荐

java调用其他java项目的Https接口

项目中是这样的: 用户拿出二维码展示,让机器识别二维码, 机器调用开门的后台系统接口, 然后开门的后台系统接口需要调用管理系统的接口, 管理系统需要判断能不能开门.这两个系统是互相独立的.当时使用http调用是没有问题的.当时后来要求必须用https.废话不说,直接代码: 我的项目中调用的是 HttpsUtils.Get(utlStr) 这个接口 开门系统接口如下图:   管理系统的接口...

Hadoop1.2.1全分布式模式配置

一 集群规划 主机名            IP                               安装的软件 &nbs...

Go语言gin框架的安装

尝试安装了一下gin,把遇到的一些小问题来记录一下 安装步骤 首先来看看官方文档,链接点这里 可以看到安装步骤很简单,就一句话 在命令行中输入这句话运行等待就好。 问题来了,因为墙的问题,go get会很慢,所以命令行里面半天什么反应也没有,不要急,慢慢等着就会看到gin-gonic/gin这个目录出现 这个时候命令行还是没有结束,表示还在下一些东西。有的时候可能心急的人就停了(比如我),然后写个...

uni-app表单组件二

input(输入框) 属性名 类型 说明 平台差异 value String 输入框的初始内容 type String input 的类型 password Boolean(默认false) 是否是密码类型 placeholder String 输入框为空时占位符 placeholder-style String 指定 placeholder 的样式 placeholder-class Strin...

深入理解 JavaScript 代码执行机制

深入理解 JavaScript 代码执行机制 前言 本文仅为个人见解,如有错误的地方欢迎留言区探讨和指正。 1、餐前甜品 如下是一段 JavaScript 代码,如果你毫不犹豫的说出代码执行顺序。那么请直接滚动到底部,留下你的足迹,接受膜拜。如果还不是很确定,那么请往下继续查看。 2、磨刀不误砍柴工(了解浏览器原理) (1) 进程和线程 进程是cpu资源分配的最小单位(是能拥有资源和独立运行的最小...

猜你喜欢

Centos7下配置DRBD Cluster扩展节点

操作环境 CentOS Linux release 7.4.1708 (Core) DRBDADM_BUILDTAG=GIT-hash:\ ee126652638328b55dc6bff47d07d6161ab768db\ build\ by\ [email protected]\,\ 2018-07-30\ 22:23:07 DRBDADM_API_VERSION=2 DRBD_KERNEL_VER...

选择排序了解一下

选择排序是一种简单直观的排序算法,它的主要思想:初始时在序列中找到最小(大)的元素,放到序列的起始位置作为已排序序列;然后再从剩余未排序元素中继续寻找最小(大)的元素,放到已排序序列的末尾,以此类推,直到所有元素均排序完毕。 即每遍历一次就记住了最大(小)的元素的位置,最后仅需要一次交换操作就可以放到其适合的位置。 如下图所示: 实现代码如下: 选择排序是不稳定排序,时间复杂度在最优、最坏情况下都...

ssh免密登录、操作另一个服务器

目录 一、SSH简介 scp 传输文件 二、SSH免密登陆原理  三、SSH免密登陆 1、生成** 2、将客户端公钥 配置到服务器端 方法一:  方法二: 3、known_hosts 一、SSH简介 SSH(Secure Shell)是一种通信加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。 SSH通过在网络中创建安全隧道来实现SSH客户...

如何把OpenCV v3.1.0整合到 Android Studio v1.4.1

本文翻译自: https://stackoverflow.com/questions/27406303/opencv-in-android-studio   点击打开链接 有经验的Android studio 开发大牛们可能觉得这篇文章写得太啰嗦,可是本文主要针对刚刚迈入进来的小妞们~~现在开始啦: 第一步 创建一个新工程(File/New Project) 命名为 "...