Pyqt学习

参考

PyQT6:看这一篇就够了-CSDN博客

QT中布局器的addStretch()函数使用-CSDN博客

1.1. Course Introduction_哔哩哔哩_bilibili

三种窗口 

QWidget

所有用户界面对象的基类。拥有丰富的小部件(如按钮,输入框等)

import sys
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6.QtWidgets import *
from PyQt6.QtWidgets import QApplication


app=QApplication(sys.argv)
window=QWidget()
button=QPushButton("jack")
left_layout=QVBoxLayout()
left_layout.addWidget(button)
window.setLayout(left_layout)
window.show()
sys.exit(app.exec())

这里app,应该是类似与应用程序,读入我们的命令行的命令。生成了一个button控件,命名为jack,同时添加了一个布局,将它加入布局里面,然后设置了这个window的主要布局为什么,感觉就是嵌套盒子,和之前的安卓开发很像。最后是显示窗口,然后app.exec()会让程序不断的消息循环,然后等待最后的关闭。 

QMainWindow

主窗口的基类,提供一个主应用程序窗口,一个框架,用于构建应用程序的用户界面,拥有自己的布局,可以访问QStatusBar,QToolbar等。

import sys
from PyQt6.QtCore import *
from PyQt6.QtGui import *
from PyQt6.QtWidgets import *
from PyQt6.QtWidgets import QApplication


app=QApplication(sys.argv)
window=QMainWindow()

window.statusBar().showMessage("aaaa")
window.menuBar().addMenu("aaaaajjjj")
window.show()
sys.exit(app.exec())

 这两个似乎是只有QMainWindow()才有用,在QWidget中是没有这个类的。

用QWidget()

app=QApplication(sys.argv)
window=QWidget()

window.statusBar().showMessage("aaaa")
window.menuBar().addMenu("aaaaajjjj")
window.show()
sys.exit(app.exec())

QDialog

 对话窗口基类,主要用于短期任务的顶级窗口交互,没有放大按钮,和缩小按钮,只有关闭按钮

app=QApplication(sys.argv)
window=QDialog()
window.show()
sys.exit(app.exec())

 面向对象继承

继承QWidget (其他类似)

顾名思义,就是继承QWidget这个窗口类,然后形成自己的窗口类,父类的窗口被继承,这样可以自己在这个类中定义自己的窗口。创2代了属于。

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec())

可以设计一个不能拉动的,透明窗口

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(100,100,700,400) #设置窗口的位置大小(x,y,w,h)
        self.setWindowTitle("hello world")#设置窗口的标题栏
        self.setWindowIcon(QIcon(r'G:\script\Tool\target.png'))#设置窗口的图标
        self.setFixedWidth(700)#设置窗口固定的宽
        self.setFixedHeight(400)#设置窗口固定的长
        self.setStyleSheet("background-color:green")#设置窗口的背景颜色
        self.setWindowOpacity(1)#设置窗口的不透明度0~1,1是完全不透明

QtDesigner 

这里放一下作者的安装帮助,可以去B站看一下原作者,很有帮助

链接:https://pan.baidu.com/s/1ONF05ppG8VAuRnoIGGJTSQ 
提取码:480h 
--来自百度网盘超级会员V4的分享

 使用Designer生成ui

类似图形化界面的编辑,你可以手动拖动这些按键,然后还可以在右侧改变它的属性 

 点击保存以后会得到一个ui文件,可以转换为py文件,以下分别是ui文件的内容和py文件的内容

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
 <class>Form</class>
 <widget class="QWidget" name="Form">
  <property name="geometry">
   <rect>
    <x>0</x>
    <y>0</y>
    <width>620</width>
    <height>495</height>
   </rect>
  </property>
  <property name="windowTitle">
   <string>hello world</string>
  </property>
  <widget class="QPushButton" name="pushButton">
   <property name="geometry">
    <rect>
     <x>30</x>
     <y>50</y>
     <width>75</width>
     <height>23</height>
    </rect>
   </property>
   <property name="text">
    <string>PushButton</string>
   </property>
  </widget>
  <widget class="QPushButton" name="pushButton_2">
   <property name="geometry">
    <rect>
     <x>30</x>
     <y>110</y>
     <width>75</width>
     <height>23</height>
    </rect>
   </property>
   <property name="text">
    <string>PushButton</string>
   </property>
  </widget>
  <widget class="QLabel" name="label">
   <property name="geometry">
    <rect>
     <x>240</x>
     <y>230</y>
     <width>251</width>
     <height>16</height>
    </rect>
   </property>
   <property name="text">
    <string>Hello world</string>
   </property>
  </widget>
 </widget>
 <resources/>
 <connections/>
</ui>
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt6 UI code generator 6.4.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(620, 495)
        self.pushButton = QtWidgets.QPushButton(parent=Form)
        self.pushButton.setGeometry(QtCore.QRect(30, 50, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(parent=Form)
        self.pushButton_2.setGeometry(QtCore.QRect(30, 110, 75, 23))
        self.pushButton_2.setObjectName("pushButton_2")
        self.label = QtWidgets.QLabel(parent=Form)
        self.label.setGeometry(QtCore.QRect(240, 230, 251, 16))
        self.label.setObjectName("label")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "hello world"))
        self.pushButton.setText(_translate("Form", "PushButton"))
        self.pushButton_2.setText(_translate("Form", "PushButton"))
        self.label.setText(_translate("Form", "Hello world"))

似乎是show不出来 

u.show()
AttributeError: 'Ui_Form' object has no attribute 'show'

这里再尝试使用命令行

pyuic6 -x .\ui\WinUI.ui -o ./WinUI.py

使用命令行进行了转换,还得到了程序的入口,但是还不懂什么意思,于是,开搜。

  1. app = QtWidgets.QApplication(sys.argv):

    • 这行代码创建了一个 QApplication 对象。在 PyQt 中,每个 GUI 应用程序必须有一个 QApplication 对象。QApplication 管理应用程序的控制流程和主要设置。
    • sys.argv 是一个从命令行传递参数的列表。它允许 PyQt 应用程序接受命令行参数。这是标准做法,即使您的应用程序不从命令行接受参数。
  2. Form = QtWidgets.QWidget():

    • 这行代码创建了一个 QWidget 对象,它是 PyQt 中所有用户界面对象的基类。在这种情况下,Form 将作为应用程序的主窗口。
  3. ui = Ui_Form():

    • 这里创建了 Ui_Form 类的一个实例。通常,Ui_Form 是使用 Qt Designer 设计的 GUI 的 Python 代码表示。这个类包含了设置 GUI(如添加按钮、文本框等)所需的所有方法和属性。
  4. ui.setupUi(Form):

    • 这行代码调用 Ui_Form 中的 setupUi 方法,并将之前创建的 Form 作为参数传递。这个方法负责初始化界面,将所有的控件添加到 Form 窗口中。
  5. Form.show():

    • 该方法使 Form 窗口可见。在此之前,窗口已经创建并设置,但还没有显示在屏幕上。
  6. sys.exit(app.exec()):

    • app.exec() 启动应用程序的事件循环。这允许应用程序等待和响应用户的交互操作,例如点击按钮或关闭窗口。
    • sys.exit() 确保应用程序可以干净地退出。exec() 方法返回一个整数状态码,sys.exit() 使用这个状态码作为应用程序退出时的返回值

 这里Form传入后,作为窗口,也就是后面的parent,就是用来后面设置组件的。总的来说还是很方面的,以后可以设计分页面。

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt6 UI code generator 6.4.2
#
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt6 import QtCore, QtGui, QtWidgets


class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(620, 495)
        self.pushButton = QtWidgets.QPushButton(parent=Form)
        self.pushButton.setGeometry(QtCore.QRect(30, 50, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(parent=Form)
        self.pushButton_2.setGeometry(QtCore.QRect(30, 110, 75, 23))
        self.pushButton_2.setObjectName("pushButton_2")
        self.label = QtWidgets.QLabel(parent=Form)
        self.label.setGeometry(QtCore.QRect(240, 230, 251, 16))
        self.label.setObjectName("label")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "hello world"))
        self.pushButton.setText(_translate("Form", "PushButton"))
        self.pushButton_2.setText(_translate("Form", "PushButton"))
        self.label.setText(_translate("Form", "Hello world"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    Form = QtWidgets.QWidget()
    ui = Ui_Form()
    ui.setupUi(Form)
    Form.show()
    sys.exit(app.exec())

 

直接在程序中使用ui

这里注意,一定要把self传进去,不然调用不到我们的ui文件,可以怎么理解,ui文件需要窗口去布置它的页面。 

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        uic.loadUi(r'untitled.ui',self)

app=QApplication(sys.argv)
window=Window()
window.show()
sys.exit(app.exec())

QLabel 

文本标签

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()

        label=QLabel("hello world",self)#创建一个文本标签,设置标签的内容,以及传递一个窗口
        label.move(100,100)#移动标签
        label.setFont(QFont("Sanserif",15))#设置标签的字体
        label.setStyleSheet("color:red")#设置标签的字体颜色
        label.setText("jack lh")#设置标签的内容
        #label.clear() 清除标签

 图像标签QPixmap

使用QPixmap去加载图片,然后set到label中,图像原大小显示

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        label=QLabel(self)
        pixmap=QPixmap(r"G:\script\Tool\target.png")
        label.setPixmap(pixmap)
        #label.clear() 清除标签

git图像标签QMovie

使用QMovie可以显示动态的gif,要使用start方法

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        label=QLabel(self)
        movie=QMovie(r'G:\script\Tool\target.png')
        label.setMovie(movie)# 设置动态图播放速度
        movie.setSpeed(500)
        movie.start()

 QPushButton

窗口中的按钮,也是给定了一个窗口,然后在窗口上添加按钮

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.create_button()
        #label.clear() 清除标签
    def create_button(self):
        button=QPushButton("click",self)#定义一个按钮
        button.setGeometry(100,100,100,100)#定义按钮的位置和大小
        button.setFont(QFont("Time",14,QFont.Weight.ExtraBold))#定义按钮的字体样式
        button.setIcon(QIcon(r"G:\script\Tool\bezier_curve_points.png"))#按钮log

可以设置按钮上的交互,比如说下拉菜单

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.create_button()
        #label.clear() 清除标签
    def create_button(self):
        button=QPushButton("click",self)#定义一个按钮
        button.setGeometry(100,100,100,100)#定义按钮的位置和大小
        button.setFont(QFont("Time",14,QFont.Weight.ExtraBold))#定义按钮的字体样式
        button.setIcon(QIcon(r"G:\script\Tool\bezier_curve_points.png"))#按钮log
        
        menu=QMenu()#定义一个下拉菜单
        menu.addAction("copy")#添加内容 addAction()
        menu.addAction("cut")
        menu.addAction("paste")
        button.setMenu(menu)#设置菜单

QLineEdit

文本编辑框,用户可以用来文本编辑

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        line_edit=QLineEdit(self)
        line_edit.setFont(QFont("Sanserif",15))#字体,老朋友了
        line_edit.setPlaceholderText("please input your name")#提示文字
        line_edit.setEchoMode(QLineEdit.EchoMode.Password)#文本框的属性,这里是密码属性
        line_edit.setEnabled(False)#文本框是否运行编辑

Layout 

QHBoxLayout

水平对齐对象,用于水平对齐。 

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(1000,100,200,200)
        btn1=QPushButton("click1")#定义按钮
        btn2=QPushButton("click2")
        btn3=QPushButton("click3")
        btn4=QPushButton("click4")
        hbx=QHBoxLayout()#定义一个水平布局
        hbx.addWidget(btn1)#将按钮加入水平布局
        hbx.addWidget(btn2)
        hbx.addWidget(btn3)
        hbx.addWidget(btn4)
        self.setLayout(hbx)#设置窗口的布局

addSpacing()和Stretch()是一样的效果

        hbx.addWidget(btn1)#将按钮加入水平布局中
        hbx.addStretch(1)#设置了按钮间的间距
        hbx.addWidget(btn2)
        hbx.addStretch(1)
        hbx.addWidget(btn3)
        hbx.addWidget(btn4)

 QVBoxLayout

垂直对齐对象,用于垂直对齐。 

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(1000,100,400,200)
        btn1=QPushButton("click1")#定义按钮
        btn2=QPushButton("click2")
        btn3=QPushButton("click3")
        btn4=QPushButton("click4")
        hbx=QVBoxLayout()#定义一个水平布局

        hbx.addWidget(btn1)#将按钮加入垂直布局
        hbx.addStretch(1)#设置了按钮间的间距
        hbx.addWidget(btn2)
        hbx.addStretch(1)
        hbx.addWidget(btn3)
        hbx.addWidget(btn4)

        self.setLayout(hbx)#设置窗口的布局

QGridLayout 

 表格对齐对象,用于垂直水平对齐,拉动窗口依然是对齐的,拉到最小有限制,按钮不能被消失。

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(1000,100,400,200)
        btn1=QPushButton("click1")#定义按钮
        btn2=QPushButton("click2")
        btn3=QPushButton("click3")
        btn4=QPushButton("click4")
        btn5 = QPushButton("click5")
        btn6 = QPushButton("click6")
        btn7 = QPushButton("click7")
        hbx=QGridLayout()#定义一个网格布局

        hbx.addWidget(btn1,0,0)#添加按钮,以及设置位置
        hbx.addWidget(btn2, 0, 1)
        hbx.addWidget(btn3, 0, 2)
        hbx.addWidget(btn4, 1, 0)
        hbx.addWidget(btn5, 1, 1)
        hbx.addWidget(btn6, 1, 2)
        hbx.addWidget(btn7, 2, 0)

        self.setLayout(hbx)#设置窗口的布局

事件处理(Event Hadling)

代码操作

 事件处理也称为信号和槽,就是点击后就可以响应一些事情

python 2024-02-01 17-58-23

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.setGeometry(100,100,100,100)
        self.create_button()
    def create_button(self):
        button=QPushButton(self)
        self.label=QLabel("hello world")#文本标签
        layout=QHBoxLayout()#布局
        layout.addWidget(button)#添加按钮
        layout.addWidget(self.label)
        self.setLayout(layout)
        button.clicked.connect(self.func)#设置点击后的响应事件
    def func(self):
        self.label.setText("jackgod")#响应事件为更改label的内容

QtDesigner

可以设置输入框字体的样式,以及更改Label标签的样式

 可以右键设置组件的布局,布局之间可以嵌套

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(620, 552)
        self.widget = QtWidgets.QWidget(parent=Form)
        self.widget.setGeometry(QtCore.QRect(60, 170, 235, 48))
        self.widget.setObjectName("widget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.horizontalLayout = QtWidgets.QHBoxLayout()
        self.horizontalLayout.setObjectName("horizontalLayout")
        self.pushButton = QtWidgets.QPushButton(parent=self.widget)
        self.pushButton.setObjectName("pushButton")
        self.pushButton.clicked.connect(self.say_hi)
        self.horizontalLayout.addWidget(self.pushButton)
        self.lineEdit = QtWidgets.QLineEdit(parent=self.widget)
        font = QtGui.QFont()
        font.setFamily("Microsoft PhagsPa")
        font.setBold(True)
        self.lineEdit.setFont(font)
        self.lineEdit.setObjectName("lineEdit")
        self.horizontalLayout.addWidget(self.lineEdit)
        self.verticalLayout.addLayout(self.horizontalLayout)
        self.label = QtWidgets.QLabel(parent=self.widget)
        self.label.setStyleSheet("QLabel{\n"
"color:rgb(255, 85, 0)\n"
"}")
        self.label.setObjectName("label")
        self.verticalLayout.addWidget(self.label)

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)
    def say_hi(self):
        self.label.setText(self.lineEdit.text())
    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "hello world"))
        self.pushButton.setText(_translate("Form", "确认"))
        self.label.setText(_translate("Form", "TextLabel"))

项目实践 

计算器

方式一:利用QtDrsigner

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(620, 495)
        self.pushButton = QtWidgets.QPushButton(parent=Form)
        self.pushButton.setGeometry(QtCore.QRect(30, 50, 75, 23))
        self.pushButton.setObjectName("pushButton")
        self.pushButton_2 = QtWidgets.QPushButton(parent=Form)
        self.pushButton_2.setGeometry(QtCore.QRect(30, 110, 75, 23))
        self.pushButton_2.setObjectName("pushButton_2")
        self.label = QtWidgets.QLabel(parent=Form)
        self.label.setGeometry(QtCore.QRect(240, 230, 251, 16))
        self.label.setObjectName("label")

        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "hello world"))
        self.pushButton.setText(_translate("Form", "PushButton"))
        self.pushButton_2.setText(_translate("Form", "PushButton"))
        self.label.setText(_translate("Form", "Hello world"))
app=QApplication(sys.argv)
window=QWidget()
ui=second.Ui_Form()
ui.setupUi(window)
window.show()
sys.exit(app.exec())

方式二:直接编写代码 

忽略了点击的细节,和样式细节,只是证明可以用这种方式实现

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.add_button=QPushButton("+")
        self.jian_button=QPushButton("-")
        self.muti_button=QPushButton("*")
        self.dvid_button=QPushButton("/")
        layout=QHBoxLayout()
        layout.addWidget(self.add_button)
        layout.addWidget(self.jian_button)
        layout.addWidget(self.muti_button)
        layout.addWidget(self.dvid_button)
        l=QVBoxLayout()
        self.input1=QLineEdit()
        self.input2=QLineEdit()
        self.la=QLabel()
        l.addWidget(self.input1)
        l.addWidget(self.input2)
        l.addLayout(layout)
        l.addWidget(self.la)
        self.setLayout(l)

QRadioButton 

直接编写代码

有时需要知道信号是由哪个控件发出的。对此PyQt5提供了sender()方法。当同一个按钮点击同一个反应函数的时候,就可以根据这个sender来区分。

在多组单选按钮之间,可以使用QButtonGroup来区分不同的单选组。

单选按钮的事件绑定使用toggled().connect()

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.radio1=QRadioButton()
        self.radio1.setText("jack")#设置单选按钮的文本
        self.radio1.setIcon(QIcon(r"G:\script\Tool\064051002443_IMG.jpg.png"))#设置单选按钮的图片
        self.radio1.setIconSize(QSize(20,20))#设置单选按钮的图片的尺寸大小
        self.radio2=QRadioButton()#设置单选按钮组
        self.radio2.setText("god")
        self.radio1.toggled.connect(self.cl)#单选按钮的绑定点击事件使用toggled
        self.radio2.toggled.connect(self.cl)
        self.bg1=QButtonGroup()
        self.bg2=QButtonGroup()
        lay1=QHBoxLayout()#这里设置一组单选按钮在一个布局中
        self.bg1.addButton(self.radio1)
        self.bg2.addButton(self.radio2)
        lay1.addWidget(self.radio1)
        lay1.addWidget(self.radio2)
        self.radio3 = QRadioButton()
        self.radio3.setText("3")
        self.radio4 = QRadioButton()
        self.radio4.setText("4")
        lay2=QHBoxLayout()
        self.bg2.addButton(self.radio3)
        self.bg2.addButton(self.radio4)
        lay2.addWidget(self.radio3)
        lay2.addWidget(self.radio4)
        lay3=QVBoxLayout()
        lay3.addLayout(lay1)
        lay3.addLayout(lay2)
        self.label=QLabel()
        self.label.setFont(QFont("Times",14))
        lay3.addWidget(self.label)
        self.setLayout(lay3)
    def cl(self):
        button_click=self.sender()#设置事件的接收
        if(button_click.isChecked()):#查看是否有事件
            self.label.setText(f"hello world{button_click.text()}")

 QtDesigner使用

使用QtDesigner可以直接分组,这里的逻辑是,当两组单选按钮不在一个布局的时候,那么他就是分组的。

.isChecked():可以判断这个单选按钮是否被选中

class Ui_Form(object):
    def setupUi(self, Form):
        Form.setObjectName("Form")
        Form.resize(596, 442)
        self.widget = QtWidgets.QWidget(parent=Form)
        self.widget.setGeometry(QtCore.QRect(33, 63, 64, 71))
        self.widget.setObjectName("widget")
        self.verticalLayout = QtWidgets.QVBoxLayout(self.widget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setObjectName("verticalLayout")
        self.radioButton = QtWidgets.QRadioButton(parent=self.widget)
        self.radioButton.setStyleSheet("QRadioButton{\n"
"size:20\n"
"}")
        self.radioButton.setObjectName("radioButton")
        self.verticalLayout.addWidget(self.radioButton)
        self.radioButton_2 = QtWidgets.QRadioButton(parent=self.widget)
        self.radioButton_2.setObjectName("radioButton_2")
        self.verticalLayout.addWidget(self.radioButton_2)
        self.radioButton_3 = QtWidgets.QRadioButton(parent=self.widget)
        self.radioButton_3.setObjectName("radioButton_3")
        self.verticalLayout.addWidget(self.radioButton_3)
        self.label_2 = QtWidgets.QLabel(parent=Form)
        self.label_2.setGeometry(QtCore.QRect(31, 140, 16, 16))
        self.label_2.setText("")
        self.label_2.setObjectName("label_2")
        self.label = QtWidgets.QLabel(parent=Form)
        self.label.setGeometry(QtCore.QRect(31, 161, 16, 16))
        self.label.setText("")
        self.label.setObjectName("label")
        self.widget1 = QtWidgets.QWidget(parent=Form)
        self.widget1.setGeometry(QtCore.QRect(103, 63, 33, 71))
        self.widget1.setObjectName("widget1")
        self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.widget1)
        self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_2.setObjectName("verticalLayout_2")
        self.radioButton_4 = QtWidgets.QRadioButton(parent=self.widget1)
        self.radioButton_4.setObjectName("radioButton_4")
        self.verticalLayout_2.addWidget(self.radioButton_4)
        self.radioButton_5 = QtWidgets.QRadioButton(parent=self.widget1)
        self.radioButton_5.setObjectName("radioButton_5")
        self.verticalLayout_2.addWidget(self.radioButton_5)
        self.radioButton_6 = QtWidgets.QRadioButton(parent=self.widget1)
        self.radioButton_6.setObjectName("radioButton_6")
        self.verticalLayout_2.addWidget(self.radioButton_6)
        self.radioButton.toggled.connect(self.check_cli)
        self.radioButton_2.toggled.connect(self.check_cli)
        self.radioButton_3.toggled.connect(self.check_cli)
        self.radioButton_4.toggled.connect(self.check_cli)
        self.radioButton_5.toggled.connect(self.check_cli)
        self.radioButton_6.toggled.connect(self.check_cli)
        self.retranslateUi(Form)
        QtCore.QMetaObject.connectSlotsByName(Form)

    def retranslateUi(self, Form):
        _translate = QtCore.QCoreApplication.translate
        Form.setWindowTitle(_translate("Form", "Form"))
        self.radioButton.setText(_translate("Form", "java"))
        self.radioButton_2.setText(_translate("Form", "Python"))
        self.radioButton_3.setText(_translate("Form", "c++"))
        self.radioButton_4.setText(_translate("Form", "a"))
        self.radioButton_5.setText(_translate("Form", "b"))
        self.radioButton_6.setText(_translate("Form", "c"))

    def check_cli(self):
        tex1 = ""
        tex2 = ""
        if self.radioButton.isChecked():
            tex1 = "java"
        if self.radioButton_2.isChecked():
            tex1 = "Python"
        if self.radioButton_3.isChecked():
            tex1 = "c++"
        if self.radioButton_4.isChecked():
            tex2 = "a"
        if self.radioButton_5.isChecked():
            tex2 = "b"
        if self.radioButton_6.isChecked():
            tex2 = "c"
        self.label.setText(tex1)
        self.label_2.setText(tex2)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值