Вставлять 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_())
    

введите сюда описание изображения

→ Ссылка