我想将上下信号与pyqt旋转框区分开

时间:2019-05-19 07:50:00

标签: python pyqt pyqt5

我想创建一个表,其值按行变化。但是只有旋转框的最后一个值正在接收信号。

如何识别上下信号?

我调查了谷歌,发现如何通过1和-1来区分信号值,但是这种方法并未出现在官方文档中。

import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

class MyApp(QWidget):
    def __init__(self):
        super().__init__()

        self.MyApp()

    def MyApp(self):
        self.resize(500,300)
        self.tableData = [
            ['no1', 'name1', 'spinbox1', '100'],
            ['nn2', 'name2', 'spinbox2', '200'],
            ['no3', 'name3', 'spinbox3', '300'],
            ['no4', 'name4', 'spinbox4', '400'],
            ['no5', 'name5', 'spinbox5', '500']
        ]        
        self.qStandardItemModel = QStandardItemModel()   

        for i in range(len(self.tableData)):
            for j in range(len(self.tableData[0])):
                model = QStandardItem(self.tableData[i][j])              
                self.qStandardItemModel.setItem(i, j, model)   

        self.qTable = QTableView()
        self.qTable.setSelectionBehavior(QTableView.SelectRows)
        self.qTable.setEditTriggers(QTableView.NoEditTriggers)
        self.qTable.setModel(self.qStandardItemModel)   

        for i in range(5):
            self.qSpinbox = QSpinBox()    
            index = self.qTable.model().index(i, 2)
            self.qTable.setIndexWidget(index, self.qSpinbox)

        self.qSpinbox.valueChanged.connect(self.valueChanged)

        vbox = QVBoxLayout(self)
        vbox.addWidget(self.qTable)
        self.setLayout(vbox)  

    def valueChanged(self):
        print(self.qSpinbox.value())

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyApp()
    ex.show()
    sys.exit(app.exec_())
  • 更新

我想要做的是按下Spinbox向上按钮添加第四个表格值,然后按下按钮。旋转框值以此方式增加或减少1、2、3、4 ..

table
---------------------
 1 |~|     3     |4

no1|~|spinbox(up)|100| 100 -> 200 -> 300 -> 400 .........
.
.
no4|~|spinbox(up)|400| 400 -> 800 -> 1200 -> 1600 ............

-----------------
no1|~|spinbox(down)|400| 400 -> 300 -> 200 -> 100 -> 0 
.
.
no4|~|spinbox(down)|1600|1600 -> 1200 -> 800 -> 400 -> 0

0 个答案:

没有答案