实例
- 创建基于Dialog without Buttons模板的窗口
- 拖出三个Label部件,其中Label部件分别置于顶部,中部和下部位置
- 在中间空白区域拖入两个Vertical Layout面板,在第一个面板上拖入四个Radio Button部件,第二个面板拖入三个Radio Button部件
- 第一个Label的text属性为Choose your Shirt Size ,第二个为 Choose your payment method ,第三个置空
- 第一个Vertical Layout面板objectName属性设为VBoxLayout,第二个设为QVBoxLayout
- 第一个面板上四个Radio Button的text属性分别为M,L,XL,XXL,其objectName分别为radioButtonMedium,radioButtonLarge, radioButtonXL, radioButtonXXL
- 第二个面板上四个Radio Button的text属性分别为 Debit/Credit Card,NetBanking, Cash On Delivery,其objectName分别为radioButtonDebitCard,radioButtonNetBanking, radioButtonCashOnDelivery
- 第三个Label的objectName属性为labelSelected
- 保存为demoRadioButton2.ui文件
- 使用pyuic5生成demoRadioButton2.py文件
- 创建callRadioButton2.py文件,调用demoRadioButton2.py文件,代码如下
import sys
from PyQt5.QtWidgets import QDialog,QApplication
from cookbook_200419.demoRadioButton2 import *
class MyForm(QDialog):
def __init__(self):
super().__init__()
self.ui=Ui_Dialog()
self.ui.setupUi(self)
self.ui.radioButtonMedium.toggled.connect(self.dispSelected)
self.ui.radioButtonLarge.toggled.connect(self.dispSelected)
self.ui.radioButtonXL.toggled.connect(self.dispSelected)
self.ui.radioButtonXXL.toggled.connect(self.dispSelected)
self.ui.radioButtonDebitCard.toggled.connect(self.dispSelected)
self.ui.radioButtonNetBanking.toggled.connect(self.dispSelected)
self.ui.radioButtonCashOnDelivery.toggled.connect(self.dispSelected)
self.show()
def dispSelected(self):
selected1=""
selected2=""
if self.ui.radioButtonMedium.isChecked()==True:
selected1="Medium"
if self.ui.radioButtonLarge.isChecked()==True:
selected1="Large"
if self.ui.radioButtonXL.isChecked()==True:
selected1="Extra Large"
if self.ui.radioButtonXXL.isChecked()==True:
selected1="Extra Extra Large"
if self.ui.radioButtonDebitCard.isChecked()==True:
selected2="Debit/Credit Card"
if self.ui.radioButtonNetBanking.isChecked()==True:
selected2="NetBanking"
if self.ui.radioButtonCashOnDelivery.isChecked()==True:
selected2="Cash On Delivery"
self.ui.labelSelected.setText("Chosen shirt size is "+str(selected1)+" and payment method as "+str(selected2))
if __name__=="__main__":
app=QApplication(sys.argv)
w=MyForm()
w.show()
sys.exit(app.exec())