如何从小部件 class 访问 QMainWindows 中的 QstatusBar?
How to access QstatusBar in QMainWindows from a widget class?
我正在尝试更改在主窗口 Class 中从另一个 class
创建的 Qstatusbar 的文本
我已经尝试了几种用于网络的方法,但没有找到答案...
class MainWindow(QMainWindow):
def __init__(self, widget):
QMainWindow.__init__(self)
self.setWindowTitle("Main Windows")
# Status Bar
self.main_statusbar = QStatusBar()
self.main_statusbar.showMessage("Ready")
self.setStatusBar(self.main_statusbar)
class Widget(QWidget):
def __init__(self):
QWidget.__init__(self)
self.buttons_layout = QHBoxLayout()
self.btn_enregister = QPushButton("Save")
self.btn_enregister.clicked.connect(self.save_information)
def save_information(self):
if self.line_prenom.text() and self.line_nom.text():
info_client.write(db)
else:
(this line)---> main_statusbar.showMessage("Fidouda")
if __name__ == "__main__":
app = QApplication(sys.argv)
widget = Widget()
window = MainWindow(widget)
window.resize(800, 700)
window.show()
sys.exit(app.exec_())
我希望能够通过小部件 class
修改在主窗口 class 中创建的状态栏文本
Qt 相对于其他库的优势之一是允许您在对象之间进行通知的信号,在这种情况下它是最佳选择:
from PySide2.QtCore import Signal # <---
class MainWindow(QMainWindow):
def __init__(self, widget):
QMainWindow.__init__(self)
self.setWindowTitle("Main Windows")
# Status Bar
self.main_statusbar = QStatusBar()
self.main_statusbar.showMessage("Ready")
self.setStatusBar(self.main_statusbar)
widget.messageChanged.connect(self.main_statusbar.showMessage) # <---
class Widget(QWidget):
messageChanged = Signal(str) # <---
# ...
def save_information(self):
if self.line_prenom.text() and self.line_nom.text():
info_client.write(db)
else:
self.messageChanged.emit("Fidouda") # <---
我正在尝试更改在主窗口 Class 中从另一个 class
创建的 Qstatusbar 的文本我已经尝试了几种用于网络的方法,但没有找到答案...
class MainWindow(QMainWindow):
def __init__(self, widget):
QMainWindow.__init__(self)
self.setWindowTitle("Main Windows")
# Status Bar
self.main_statusbar = QStatusBar()
self.main_statusbar.showMessage("Ready")
self.setStatusBar(self.main_statusbar)
class Widget(QWidget):
def __init__(self):
QWidget.__init__(self)
self.buttons_layout = QHBoxLayout()
self.btn_enregister = QPushButton("Save")
self.btn_enregister.clicked.connect(self.save_information)
def save_information(self):
if self.line_prenom.text() and self.line_nom.text():
info_client.write(db)
else:
(this line)---> main_statusbar.showMessage("Fidouda")
if __name__ == "__main__":
app = QApplication(sys.argv)
widget = Widget()
window = MainWindow(widget)
window.resize(800, 700)
window.show()
sys.exit(app.exec_())
我希望能够通过小部件 class
修改在主窗口 class 中创建的状态栏文本Qt 相对于其他库的优势之一是允许您在对象之间进行通知的信号,在这种情况下它是最佳选择:
from PySide2.QtCore import Signal # <---
class MainWindow(QMainWindow):
def __init__(self, widget):
QMainWindow.__init__(self)
self.setWindowTitle("Main Windows")
# Status Bar
self.main_statusbar = QStatusBar()
self.main_statusbar.showMessage("Ready")
self.setStatusBar(self.main_statusbar)
widget.messageChanged.connect(self.main_statusbar.showMessage) # <---
class Widget(QWidget):
messageChanged = Signal(str) # <---
# ...
def save_information(self):
if self.line_prenom.text() and self.line_nom.text():
info_client.write(db)
else:
self.messageChanged.emit("Fidouda") # <---