PYQT QpushButton 与 QcomboBox 多槽连接
PYQT QpushButton with QcomboBox multi-slot connect
所以我开发了这个 GUI 用于工作,但是我无法将我的 QcomboBox 连接到多个不同的插槽,具体取决于用户输入。本质上,我希望用户能够从 QcomboBox select 驱动器,然后按下 QpushButton 并自动定向到网络驱动器。
这几天我一直在摸不着头脑。我知道代码的第二部分应该是这样的(也许?):
def retranslateUi(Self, MainWindow):
self.btnGo.clicked.connect(self.DriverSelectClicked)
def DriverSelectClicked(self):
if self.comboBox1.currentIndex() == 0:
os.startfile('C:/')
if self.comboBox1.currentIndex() == 1:
os.startfile('Z:/')
您应该直接从组合框中提取驱动器路径信息。除了设置组合框条目的文本外,您还可以设置数据
drives = ['C:\', 'Z:\']
for drive in drives:
text = '[{}] Disk Drive'.format(drive)
self.comboBox1.addItem(text, drive)
然后,当您处理点击时,您可以只读取包含驱动器的数据字段并直接使用它
def DriverSelectClicked(self):
drive = self.comboBox1.itemData(self.comboBox1.currentIndex())
if drive:
os.startfile(drive)
所以我开发了这个 GUI 用于工作,但是我无法将我的 QcomboBox 连接到多个不同的插槽,具体取决于用户输入。本质上,我希望用户能够从 QcomboBox select 驱动器,然后按下 QpushButton 并自动定向到网络驱动器。
这几天我一直在摸不着头脑。我知道代码的第二部分应该是这样的(也许?):
def retranslateUi(Self, MainWindow):
self.btnGo.clicked.connect(self.DriverSelectClicked)
def DriverSelectClicked(self):
if self.comboBox1.currentIndex() == 0:
os.startfile('C:/')
if self.comboBox1.currentIndex() == 1:
os.startfile('Z:/')
您应该直接从组合框中提取驱动器路径信息。除了设置组合框条目的文本外,您还可以设置数据
drives = ['C:\', 'Z:\']
for drive in drives:
text = '[{}] Disk Drive'.format(drive)
self.comboBox1.addItem(text, drive)
然后,当您处理点击时,您可以只读取包含驱动器的数据字段并直接使用它
def DriverSelectClicked(self):
drive = self.comboBox1.itemData(self.comboBox1.currentIndex())
if drive:
os.startfile(drive)