def table_reach_all(self,MainWindow): # 遍历获取全部数据 item_list = [] model = MainWindow.main_ui.tableView.model() for row in range(model.rowCount()): for column in range(model.columnCount()): item = model.item(row, column) if item: # print(f'Row {row}, Column {column}: {item.text()}') item_list.append(item.text()) return item_list
时间: 2024-02-14 07:27:44 浏览: 32
根据给出的`table_reach_all`函数的代码,可以确定返回的是一个一维列表`item_list`,其中包含了表格中所有非空单元格的文本内容。
在这种情况下,`Itemlist`就是一个包含了所有非空单元格文本的列表。循环`for Item in enumerate(Itemlist):`中的`Item`表示`Itemlist`中的一个元素,即表格中的一个非空单元格的文本内容。
如果你想获取每个元素在表格中的行和列索引,可以将循环改为`for index, Item in enumerate(Itemlist):`,然后使用`index`来表示当前元素在`Itemlist`中的索引位置,使用`row`和`column`来表示当前元素在表格中的行和列索引。
相关问题
class MainWindow(UI_ShowPages): def __init__(self): # 初始化界面 super().__init__()
这段代码是一个类 `MainWindow` 的定义,该类继承了 `UI_ShowPages` 类,并在 `__init__` 方法中调用了父类的构造方法。这意味着 `MainWindow` 类拥有 `UI_ShowPages` 类的所有属性和方法,并且在初始化时会自动调用父类的构造方法进行一些初始化操作。
这段代码没进 thing1()的原因 class Worker(QtCore.QThread): sinOut = pyqtSignal(str) def __init__(self, parent=None): super(Worker, self).__init__(parent) # 设置工作状态与初始num数值 self.working = True self.num = 0 #def __del__(self): # 线程状态改变与线程终止 #self.working = False #self.wait() def stop(self): #线程状态改变与线程终止 self.working = False self.wait() def run(self): self.working = True while self.working == True: #file_str = 'File index{0}'.format(self.num) self.num += 1 # 发射信号 #self.sinOut.emit(file_str) self.sinOut.emit('1') # 线程休眠2秒 self.msleep(5) class parentWindow(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.main_ui = JQ.Ui_MainWindow() self.main_ui.setupUi(self) self.thread1 = Worker() self.main_ui.pushButton_2.clicked.connect(self.thing1) self.thread1.sinOut.connect(self.printt) def thing1(self): #self.main_ui.pushButton.setEnabled(False) print('9999999999') self.thread1.start() self.thread1.wait() print('123') #self.sleep(2) def printt(self): print('7777') def ok(): print('ok') # def hourstest(): # thread1 = Worker() # thread1.start() # com = JQ.Ui_MainWindow().comboBox_2.currentText() # ser = serial.Serial('com3', 1200, timeout=1) # data = bytes.fromhex( # '68 01 00 20 00 00 00 00 00 34 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 33 F4 16 ') # ser.write(data) if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) widget = QtWidgets.QMainWindow() widget = parentWindow() ui = JQ.Ui_MainWindow() # 这是原py中的类,因人而异哦 ui.setupUi(widget) ui.discoverSerial() #串口发现 #ui.pushButton_2.clicked.connect(widget.thing1) widget.show() sys.exit(app.exec_())
在你的代码中,`thing1()` 函数中调用了 `self.thread1.wait()` 方法,这个方法会阻塞主线程,直到子线程执行完毕。因此,如果在 `thing1()` 中调用 `self.thread1.start()` 方法后立即调用 `self.thread1.wait()` 方法,那么子线程就没有机会执行 `run()` 方法,因为主线程一直在等待子线程执行完毕。
解决方法是在 `thing1()` 中删除 `self.thread1.wait()` 方法,让子线程在后台执行。同时,建议在 `Worker` 类的 `__del__()` 方法中加入线程终止的代码,以确保线程能够正确地退出。具体来说,可以将 `__del__()` 方法的注释部分取消注释,代码如下:
```python
class Worker(QtCore.QThread):
sinOut = pyqtSignal(str)
def __init__(self, parent=None):
super(Worker, self).__init__(parent)
# 设置工作状态与初始num数值
self.working = True
self.num = 0
def __del__(self):
# 线程状态改变与线程终止
self.working = False
self.wait()
def stop(self):
#线程状态改变与线程终止
self.working = False
self.wait()
def run(self):
self.working = True
while self.working == True:
#file_str = 'File index{0}'.format(self.num)
self.num += 1
# 发射信号
#self.sinOut.emit(file_str)
self.sinOut.emit('1')
# 线程休眠2秒
self.msleep(5)
class parentWindow(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
self.main_ui = JQ.Ui_MainWindow()
self.main_ui.setupUi(self)
self.thread1 = Worker()
self.main_ui.pushButton_2.clicked.connect(self.thing1)
self.thread1.sinOut.connect(self.printt)
def thing1(self):
#self.main_ui.pushButton.setEnabled(False)
print('9999999999')
self.thread1.start()
#self.thread1.wait() # 删除这行
print('123')
#self.sleep(2)
def printt(self):
print('7777')
def ok():
print('ok')
# def hourstest():
# thread1 = Worker()
# thread1.start()
# com = JQ.Ui_MainWindow().comboBox_2.currentText()
# ser = serial.Serial('com3', 1200, timeout=1)
# data = bytes.fromhex(
# '68 01 00 20 00 00 00 00 00 34 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 33 F4 16 ')
# ser.write(data)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
#widget = QtWidgets.QMainWindow() # 这行可删除
widget = parentWindow()
ui = JQ.Ui_MainWindow() # 这是原py中的类,因人而异哦
ui.setupUi(widget)
ui.discoverSerial() #串口发现
#ui.pushButton_2.clicked.connect(widget.thing1)
widget.show()
sys.exit(app.exec_())
```
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)