How to open new window with push button(如何使用按钮打开新窗口)
本文介绍了如何使用按钮打开新窗口的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何打开一个允许我从以下代码中选择时间的新窗口?我尝试使用connect函数连接到windows2,但似乎出现错误.
How do I open a new window which allows me to select the time from the following code? I tried to use connect function to connect to windows2 however it appears that there is an error.
我想通过 Dropbox 选择时间,我可以在上午 10 点、上午 11 点等之前选择时间.有谁知道您也可以如何实现这一点?
I would like to select time by a dropbox where I could choose time by 10 am, 11 am, ect.. Does anyone know how you could implement this as well?
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.label = QLabel()
self.calendar = QCalendarWidget()
self.title="Select date from calendar"
self.left = 600
self.top = 300
self.width = 500
self.height = 480
self.iconName = "home.png"
self.setWindowTitle(self.title)
self.setWindowIcon(QtGui.QIcon(self.iconName))
self.setGeometry(self.left, self.top, self.width, self.height)
self.proceedbutton = QPushButton("Proceed to select time", self)
self.proceedbutton.setGeometry(290, 430, 190, 40)
self.proceedbutton.setToolTip("<h3>Start the Session</h3>")
self.proceedbutton.clicked.connect(self.window2)
self.hide()
self.backbutton = QPushButton("Back", self)
self.backbutton.setGeometry(200, 430, 80, 40)
self.backbutton.setToolTip("<h3>Start the Session</h3>")
self.Calendar()
self.show()
def Calendar(self):
CalendarVbox = QVBoxLayout()
self.calendar.setGridVisible(True)
self.label.setFont(QtGui.QFont("Sanserif", 10))
self.label.setStyleSheet('color:black')
CalendarVbox.addWidget(self.calendar)
CalendarVbox.addWidget(self.label)
self.setLayout(CalendarVbox)
self.calendar.selectionChanged.connect(self.onSelectionChanged)
def window2(self):
self.label = QLabel("Select Time", self)
self.label.move(200,430)
self.setWindowTitle("Select Time")
self.setGeometry(self.left, self.top, self.width, self.height)
self.show()
def onSelectionChanged(self):
ca = self.calendar.selectedDate()
self.label.setText(ca.toString())
App = QApplication(sys.argv)
window = Window()
sys.exit(App.exec())
推荐答案
开始使用layouts!
没有父级的小部件 - 有一个窗口.
A widget without a parent - there is a window.
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class Window(QWidget): #(QMainWindow):
def __init__(self):
super().__init__()
self.title="Select date from calendar"
self.left, self.top, self.width, self.height = 600, 100, 500, 480
self.iconName = "Ok.png" # <--- home.png
self.setWindowTitle(self.title)
self.setWindowIcon(QtGui.QIcon(self.iconName))
self.setGeometry(self.left, self.top, self.width, self.height)
self.calendar = QCalendarWidget()
self.calendar.setGridVisible(True)
self.calendar.selectionChanged.connect(self.onSelectionChanged)
self.label = QLabel()
self.label.setFont(QtGui.QFont("Sanserif", 10))
self.label.setStyleSheet('color: blue;')
self.proceedbutton = QPushButton("Proceed to select time", self)
self.proceedbutton.setToolTip("<h3>Start the Session</h3>")
self.proceedbutton.clicked.connect(self.window2)
self.backbutton = QPushButton("Back", self)
self.backbutton.setToolTip("<h3>Start the Session</h3>")
self.comboBox = None
self.grid = QtWidgets.QGridLayout(self)
self.grid.addWidget(self.calendar, 0, 0, 1, 3)
self.grid.addWidget(self.label, 1, 0, 1, 3)
self.grid.addWidget(self.backbutton, 2, 1, 1, 1)
self.grid.addWidget(self.proceedbutton, 2, 2, 1, 1)
def window2(self):
self.window = QWidget()
self.window.setWindowTitle("Select Time")
self.window.setGeometry(self.left/3, self.top, self.width/3, self.height/3)
self.label = QLabel("Select Time") # --- , self)
self.comboBox = QtWidgets.QComboBox()
self.comboBox.addItems(["choose time", "10", "11", "12"])
self.comboBox.activated[str].connect(self.onComboActivated)
layout = QFormLayout(self.window)
layout.addRow('Choose Time', self.comboBox)
self.window.show()
def onSelectionChanged(self):
ca = self.calendar.selectedDate()
self.label.setText(ca.toString())
def onComboActivated(self, text):
print("choose time: {}".format(text))
if __name__ == '__main__':
App = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(App.exec())
这篇关于如何使用按钮打开新窗口的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何使用按钮打开新窗口
基础教程推荐
猜你喜欢
- 用于分类数据的跳跃记号标签 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 筛选NumPy数组 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01