学习二 Qt creator中的基本组件(一)

一、数据的输入输出

类型获得数据输出数据特点
QlineEdit.text().setText()输出输入都为字符串形式
QspinBox.value().setvalue()专门用于输入输出整数,可以改变进制显示
QDoubleSpinBox.value().setvalue()专门用于输入输出浮点数

案例:

class QmyDialog(QWidget):
    def __init__(self,parent =None):
        super().__init__(parent)
        self.ui =Ui_Dialog()
        self.ui.setupUi(self)

    def on_pushButton_3_clicked(self):
        num = (self.ui.spinBox.value())
        price = (self.ui.doubleSpinBox.value())
        total = num*price
        self.ui.doubleSpinBox_2.setValue(total)

在这里插入图片描述
二:利用QPushButton
三:Qslider、QScrollBar和QProgressBar
案例:

class QmyDialog(QWidget):
    def __init__(self,parent =None):
        super().__init__(parent)
        self.ui =Ui_Dialog()
        self.ui.setupUi(self)
        self.ui.horizontalSlider.setMaximum(200)
        self.ui.horizontalSlider.TicksBothSides
        self.ui.horizontalScrollBar.setMaximum(200)
        self.ui.progressBar.setMaximum(200)
        self.ui.horizontalSlider.valueChanged.connect(self.do_valueChanged)
        self.ui.horizontalScrollBar.valueChanged.connect(self.do_valueChanged)  

    def do_valueChanged(self,value):
        self.ui.progressBar.setValue(value)

在这里插入图片描述
四:日期时间数据

  • 日期时间数据
    案例:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
#from PyQt5.QtCore import pyqtSlot
from PyQt5.QtCore import QDateTime, QDate,QTime

class QmyDialog(QWidget):
    def __init__(self,parent =None):
        super().__init__(parent)
        self.ui =Ui_Dialog()
        self.ui.setupUi(self)

    def on_pushButton_clicked(self): 
        #获取当前日期时间得按钮
        curDateTime =QDateTime.currentDateTime() #QDateTime.currentDateTime获取本机的时间
        self.ui.timeEdit.setTime(curDateTime.time()) #获取时间
        self.ui.lineEdit.setText(curDateTime.toString ("hh:mm:ss") ) 

        self.ui.dateEdit.setDate(curDateTime.date () ) #获取日期
        self.ui.lineEdit_2.setText(curDateTime.toString ("yyyy-MM-dd"))

        self.ui.dateTimeEdit.setDateTime (curDateTime) #获取时间和日期
        self.ui.lineEdit_3.setText (curDateTime.toString ("yyyy-MM-dd hh:mm:ss"))
   
    def on_calendarWidget_selectionChanged(self):
        #日历的组件
        date =self.ui.calendarWidget.selectedDate()
        print()
        self.ui.lineEdit_4 .setText (date.toString("yyyy年M月d日"))

    def on_pushButton_2_clicked(self) :
            ##"设置时间”按钮
        tmStr=self.ui.lineEdit.text ()
        tm=QTime.fromString (tmStr, "hh:mm:ss")
        #QTime 时间数据类型
        self.ui.timeEdit.setTime(tm)

    def on_pushButton_3_clicked(self) :
             ##"设置日期"按钮
        dtStr=self.ui.lineEdit_2.text ()
        dt =QDate.fromString (dtStr, "yyyy-MM-dd")
        self.ui.dateEdit.setDate (dt)
       
    def on_pushButton_4_clicked(self) :
        dttmStr=self.ui.lineEdit_3.text()
        dttm=QDateTime.fromString (dttmStr, "yyyy-MM-dd hh:mm:ss")
        self .ui. dateTimeEdit.setDateTime (dttm)

在这里插入图片描述

  • 可以用inputMask属性限制输入的格式以避免因输错而程序退出

五、下拉列表框
案列:

class QmyDialog(QWidget):
    def __init__(self,parent =None):
        super().__init__(parent)
        self.ui =Ui_Dialog()
        self.ui.setupUi(self)

    def on_pushButton_2_clicked(self):
        self.ui.comboBox.clear()
        #icon = QIcon(":/icons/images/aim.ico")
        pro =["山东","湖南","河北"]
        for i in range(len(pro)):
            self.ui.comboBox.addItem(pro[i])
            #addItem()用于添加一个项到列表中
            #原型1:addItem(self,str,userDate:Any = None) 添加一个项的文字
            #原型2:addItem(self,QIcon,str,userDate:Any = None) 添加一个图片+文字
    def on_pushButton_3_clicked(self):
        self.ui.comboBox.clear()
    
    @pyqtSlot(bool)
    def on_checkBox_clicked(self,checked):
        self.ui.comboBox.setEditable(checked)
        #点击ComboBox时editable属性为True,返回checked,用setEditable来决定是否可以编辑

    @pyqtSlot(str)
    def on_comboBox_currentIndexChanged(self,curText):
        self.ui.lineEdit.setText(curText)

 #   @pyqtSlot(int)
 #  def on_comboBox_currentIndexChanged(self,curText):
 #       self.ui.lineEdit.setText(str(curText))
 #      用于返回下拉列表的索引号

    def on_pushButton_clicked(self):
        self.ui.comboBox_2.clear()
        cities ={"背景":10,"上海":21,"天津":22,"徐州":516}
        for i in cities:
            self.ui.comboBox_2.addItem(i,cities[i])
            #将用户的数据也输入进comboBox
    
    @pyqtSlot(str)
    def on_comboBox_2_currentIndexChanged(self,curText):
        self.ui.lineEdit.setText(curText)
        zone = self.ui.comboBox_2.currentData()
        # 用currentData()获得关联数据
        if (zone != None):
            self.ui.lineEdit.setText(curText+":区号=%d"%zone)

在这里插入图片描述

学习整理自《Python Qt GUI与数据可视化编程》图书

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值