0
所有單選按鈕我想在class B
按下一個按鈕來取消選中class A
一些單選按鈕。如何取消從另一個類
我的示例代碼如下:
import sys, os
import PyQt4
from PyQt4.QtCore import *
from PyQt4.QtGui import *
class Widget1(QWidget):
def __init__(self, bridge, parent=None):
super().__init__()
self.bridge = bridge
self.grid = QGridLayout()
self.radiobtn = QRadioButton()
self.grid.addWidget(self.radiobtn, 0, 0)
class Widget2(QWidget):
def __init__(self, parent = None):
super().__init__()
self.grid = QGridLayout()
self.pushbtn = QPushButton()
self.grid.addWidget(self.pushbtn,0, 0)
class Tab1Layout(QWidget):
def __init__(self, parent = None):
super().__init__()
self.grid = QGridLayout()
self.group2 = Widget2()
self.group1 = Widget1(self.group2, self)
self.grid.addWidget(self.group1, 0, 0)
self.grid.addWidget(self.group2, 1, 0)
class Tabs(QTabWidget):
def __init__(self, parent = None):
super().__init__()
self.tab1 = Tab1Layout()
self.addTab(self.tab1, 'Tab1')
self.show()
def main():
app = QApplication(sys.argv)
main = Tabs()
main.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
由於我的代碼現在,它有兩個問題:
的單選按鈕,按鈕不會顯示
比方說,單選按鈕,按鈕終於露面:我想,當我點擊
Widget2
按鈕,在單選按鈕如果它已被選中,則應該取消選中0。
請注意,我已經通過把第二個參數bridge
在Widget1
聯Widget1
和Widget2
。我這樣做的原因是因爲我的原始項目中還有其他一些功能。所以請儘可能不要改變這部分。
如果我得到這個權利,所以我可以在第三類'C'鏈接兩個班(讓我們說'A'和'B')在一起,然後做A'和'B'之間'的行動'只要我設置了一個參數(比如'brid ge'在我的例子中)在兩個類中的一個?更重要的是,我可以不設置「橋」嗎? – ryan9025
@ ryan9025。該'C'類知道'A'和'B',但A''和'B'不知道對方的存在。如果你在'C'內連接'A'和'B'之間的所有信號,那麼你不一定需要這個橋。這就是信號的美妙之處:組件不需要彼此瞭解;他們只是在信號到達時對信號作出反應。你有沒有問另一個建議使用「橋」的問題?如果是這樣,也許可以沒有一個解決它。 – ekhumoro