最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

氣輕PyQt5 15 不同窗口控件的信息傳遞

2023-03-17 07:55 作者:氣輕  | 我要投稿

?

【氣輕PyQt5 13】用槽函數(shù)實(shí)現(xiàn)了不同窗口控件間的信息傳遞。這里用另外一種方式來實(shí)現(xiàn)不同窗口控件間的信息傳遞。點(diǎn)擊單選按鈕后,將六個(gè)單選按鈕組成的按鈕組顯示在新窗口中,點(diǎn)擊按鈕后,窗口會(huì)關(guān)閉,選擇的結(jié)果會(huì)顯示在主窗口的標(biāo)簽控件。

?

from PyQt5.QtWidgets import *

from PyQt5.QtGui import QFont, QIcon, QPixmap

from PyQt5.QtCore import Qt, QDate, pyqtSignal, QSize

import sys

import datetime

import numpy as np

?

timeLabel = ['早飯前', '早飯后', '午飯前', '午飯后', '晚飯前', '晚飯后']

?

class PyQt515(QWidget):

??? def __init__(self):

??????? super().__init__()

??????? self.initUI()

??? def initUI(self):

??????? self.setWindowTitle('氣輕PyQt5')??????????????? # 設(shè)置窗口標(biāo)題

??????? self.resize(450, 50)??????????????????????????? # 設(shè)置窗口大小

??????? self.setStyleSheet('background-color:#40E0D0')

?

??????? dateData = datetime.datetime.now().date()

??????? dateLabel = dateData.strftime('%Y-%m-%d')

??????? self.edit = QLineEdit(self)???????????????????? # 輸入框

??????? self.edit.setGeometry(10, 0,230, 40)??????????? # 設(shè)置位置和大小

??????? self.edit.setReadOnly(True) ????????????????????# 只讀

??????? self.edit.setText(dateLabel)

??????? self.edit.setAlignment(Qt.AlignCenter)????????? # 居中設(shè)置

??????? self.edit.setStyleSheet('background-color:#6495ED;color : #32CD32; \

??????????????????? font: bold large /"Times New Roman/";font-size:25px')

?

??????? self.btn = QPushButton('', self)

??????? self.btn.setGeometry(240,0,40,40)?????????????? # 設(shè)置位置和大小

??????? self.btn.setIcon(QIcon(QPixmap('Date.png')))

??????? self.btn.setIconSize(QSize(36,36))

??????? self.btn.clicked.connect(self.calendarOn)

??????? self.btn.setStyleSheet('background-color:#CDC5BF')

?

??????? self.stage = QLabel(self)?????????????????????? #設(shè)置label信息

??????? self.stage.setGeometry(290, 0,120, 40)????????? # 設(shè)置位置和大小

??????? self.stage.setText(timeLabel[0])

??? ????self.stage.setObjectName('label')

??????? self.stage.setToolTip('時(shí)段')?????????????????? # 設(shè)置label提示

??????? self.stage.setAlignment(Qt.AlignCenter)???????? # 居中設(shè)置

??????? self.stage.setStyleSheet('background-color:#6495ED;color : #32CD32; \

?????????? ?????????font: bold large /"Times New Roman/";font-size:25px')

?

??????? self.bTime = QPushButton('', self)

??????? self.bTime.resize(40,40)

??????? self.bTime.move(400,0)

??????? self.bTime.setFont(QFont('Arial',20))

??????? self.bTime.setIcon(QIcon(QPixmap('D:/CHEN/Python/GLXY/sys/DataEntry.png')))

??????? self.bTime.setIconSize(QSize(36,36))

??????? self.bTime.clicked.connect(self.StageOn)

??????? self.bTime.setStyleSheet('background-color:#CDC5BF')

?

??????? self.show()

?

??? def updateEdit(self,t):

??????? self.edit.setText(t)

?

??? def calendarOn( self ):

??????? self.calWin = CalendarWin(self.edit)

??????? self.calWin.show()

??????? self.calWin.move(900,700)

??????? self.calWin.signal.connect(self.updateEdit)??? # 連接信號(hào)與槽

?

??? def StageOn( self ):

??????? self.stageWin = StageWin(self.stage)

??????? self.stageWin.show( )

??????? self.stageWin.move(740,560)

?

class StageWin(QWidget):

??? def __init__(self,t):

??????? super().__init__()

??????? self.t = t

??????? self.setWindowTitle('時(shí)段')

??????? self.resize(440, 60)

??????? self.setStyleSheet('background-color:#C1CDCD')

?

??????? self.rg = QButtonGroup(self)

???????

??????? rdict = dict.fromkeys(timeLabel)

??????? x, y=np.meshgrid([80, 180, 280], [10, 30])

??????? xdict = dict(zip(timeLabel, x.ravel()))

??????? ydict = dict(zip(timeLabel, y.ravel()))

?

??????? for i, s in enumerate(timeLabel):

??????????? rdict[s] = QRadioButton(self)

??????????? rdict[s].setText(s)

??????????? rdict[s].move(xdict[s], ydict[s])

??????????? self.rg.addButton(rdict[s],i)

??????? rdict[timeLabel[0]].setChecked(True)??????????? # 設(shè)置第一個(gè)單選框被選中

??????? self.rg.buttonClicked.connect(self.updateStage)

?

??? def updateStage(self,val):

??????? self.t.setText(timeLabel[self.rg.checkedId()])

??????? self.close()

?

class CalendarWin(QWidget):

??? signal = pyqtSignal( str )????????????????????????? #定義一個(gè)信號(hào)

??? def __init__(self,t):

??????? super().__init__()

??????? self.t = t

??????? self.setWindowTitle('日期')

??????? self.resize(440, 220)

??????? cal = QCalendarWidget(self)

??????? cal.setGridVisible(True)

??????? cal.resize(400,180)

??????? cal.move(10,10)

??????? cal.clicked[QDate].connect(self.emitDate)??? # 按下按鈕時(shí)發(fā)送信號(hào)

?

??? def emitDate(self,date):

??????? self.signal.emit(date.toString("yyyy-MM-dd"))

??????? self.close()

?

if __name__ == '__main__':

??? app = QApplication(sys.argv)

??? window = PyQt515()

??? sys.exit(app.exec_())

?

執(zhí)行結(jié)果

參照【氣輕PyQt6 15


氣輕PyQt5 15 不同窗口控件的信息傳遞的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
萍乡市| 来安县| 昭苏县| 静宁县| 本溪| 新源县| 牙克石市| 瑞昌市| 贺兰县| 桐梓县| 烟台市| 阿巴嘎旗| 甘孜县| 梁平县| 太湖县| 深州市| 芒康县| 池州市| 琼中| 大足县| 长春市| 西和县| 桐柏县| 英山县| 清苑县| 东兴市| 呼伦贝尔市| 盐源县| 奉化市| 禄丰县| 江阴市| 汕尾市| 买车| 进贤县| 民权县| 湾仔区| 海安县| 公安县| 平塘县| 昌江| 日喀则市|