Вставлять dataEdit в первый столбец QTableWidget
Проблема с кодом, который должен вставлять dataEdit в первый столбец, первую строчку.
Но, при включении кода этого не происходит. В чем проблема?
main.py:
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QWidget, QLabel
from PyQt5 import uic
from PyQt5.QtWidgets import QMainWindow
from PyQt5 import *
class Widget(QMainWindow):
def __init__(self):
super().__init__()
uic.loadUi("test.ui", self)
row = 1
column = 1
self.tableWidget = QtWidgets.QTableWidget(row, column)
for row in range(self.tableWidget.rowCount()):
date_from = QtWidgets.QDateTimeEdit()
date_from.setDateTime(
QtCore.QDateTime(QtCore.QDate(2021, 8, 26), QtCore.QTime(15, 0, 0))
)
self.tableWidget.setCellWidget(row, 0, date_from)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Widget()
ex.show()
sys.exit(app.exec_())
test.ui
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>MainWindow</class>
<widget class="QMainWindow" name="MainWindow">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>320</width>
<height>240</height>
</rect>
</property>
<property name="windowTitle">
<string>MainWindow</string>
</property>
<widget class="QWidget" name="centralwidget">
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QTableWidget" name="tableWidget">
<row>
<property name="text">
<string>1</string>
</property>
</row>
<row>
<property name="text">
<string>2</string>
</property>
</row>
<column>
<property name="text">
<string>1</string>
</property>
</column>
<column>
<property name="text">
<string>2</string>
</property>
</column>
</widget>
</item>
</layout>
</widget>
<widget class="QMenuBar" name="menubar">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>320</width>
<height>21</height>
</rect>
</property>
</widget>
<widget class="QStatusBar" name="statusbar"/>
</widget>
<resources/>
<connections/>
</ui>
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Я отметил для вас строки, в которые внес изменения
import sys
from PyQt5.QtWidgets import QApplication
from PyQt5.QtWidgets import QWidget, QLabel
from PyQt5 import uic
from PyQt5.QtWidgets import QMainWindow
from PyQt5 import QtCore, QtWidgets # +++
class Widget(QMainWindow):
def __init__(self):
super().__init__()
uic.loadUi("test.ui", self)
# row = 1 # ---
# column = 1 # ---
# self.tableWidget = QtWidgets.QTableWidget(row, column) # ---
for row in range(self.tableWidget.rowCount()):
date_from = QtWidgets.QDateTimeEdit()
date_from.setDateTime(
QtCore.QDateTime(QtCore.QDate(2021, 8, 26),
QtCore.QTime(15, 0, 0))
)
self.tableWidget.setCellWidget(row, 0, date_from)
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Widget()
ex.show()
sys.exit(app.exec_())
