πŸ”„ Как ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ QTableWidget Π² Python: простыС шаги

Для обновлСния QTableWidget Π² Python Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ setItem() ΠΈ setRowCount() для измСнСния содСрТимого ΠΈ количСства строк Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° QTableWidget
table = QTableWidget()

# Установка количСства строк ΠΈ столбцов
table.setRowCount(5)
table.setColumnCount(3)

# ОбновлСниС содСрТимого ячСйки
item = QTableWidgetItem("НовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅")
table.setItem(row, col, item)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ QTableWidget, устанавливаСм количСство строк ΠΈ столбцов с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² setRowCount() ΠΈ setColumnCount(). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ обновляСм содСрТимоС ячСйки, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ setItem().

НастройтС этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° ΠΏΠΎΠ΄ ваши Π½ΡƒΠΆΠ΄Ρ‹ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ QTableWidget Π² Python с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² setItem() ΠΈ setRowCount().

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ QTableWidget Π² Python

QTableWidget - это Π²ΠΈΠ΄ΠΆΠ΅Ρ‚, прСдоставляСмый PyQt, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² графичСском интСрфСйсС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. Иногда ваши Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ QTableWidget Π² Python.

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

ΠŸΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ это:


from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ прилоТСния Qt
app = QApplication([])

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
table_widget = QTableWidget()

# Установка числа строк ΠΈ столбцов
table_widget.setRowCount(3)
table_widget.setColumnCount(2)

# Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ячССк Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ
table_widget.setItem(0, 0, QTableWidgetItem("Π―Ρ‡Π΅ΠΉΠΊΠ° 1"))
table_widget.setItem(0, 1, QTableWidgetItem("Π―Ρ‡Π΅ΠΉΠΊΠ° 2"))
table_widget.setItem(1, 0, QTableWidgetItem("Π―Ρ‡Π΅ΠΉΠΊΠ° 3"))
table_widget.setItem(1, 1, QTableWidgetItem("Π―Ρ‡Π΅ΠΉΠΊΠ° 4"))
table_widget.setItem(2, 0, QTableWidgetItem("Π―Ρ‡Π΅ΠΉΠΊΠ° 5"))
table_widget.setItem(2, 1, QTableWidgetItem("Π―Ρ‡Π΅ΠΉΠΊΠ° 6"))

# Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ прилоТСния
table_widget.show()
app.exec_()
    

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ этого ΠΊΠΎΠ΄Π° ΠΌΡ‹ создаСм простоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, содСрТащСС Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с трСмя строками ΠΈ двумя столбцами. КаТдая ячСйка заполняСтся ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ тСкстом. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ устанавливаСм Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ Π² Π³Π»Π°Π²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ прилоТСния ΠΈ запускаСм Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ app.exec_().

ОбновлСниС содСрТимого Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим нСсколько способов обновлСния содСрТимого Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Бпособ 1: ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° clear()

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ способ - ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° clear() ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π΅Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ снова. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


# ΠžΡ‡ΠΈΡΡ‚ΠΊΠ° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹
table_widget.clear()

# Π—Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ
table_widget.setRowCount(2)
table_widget.setColumnCount(3)
table_widget.setItem(0, 0, QTableWidgetItem("New Cell 1"))
table_widget.setItem(0, 1, QTableWidgetItem("New Cell 2"))
table_widget.setItem(0, 2, QTableWidgetItem("New Cell 3"))
table_widget.setItem(1, 0, QTableWidgetItem("New Cell 4"))
table_widget.setItem(1, 1, QTableWidgetItem("New Cell 5"))
table_widget.setItem(1, 2, QTableWidgetItem("New Cell 6"))
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ сначала ΠΎΡ‡ΠΈΡ‰Π°Π΅ΠΌ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° clear(), Π° Π·Π°Ρ‚Π΅ΠΌ заполняСм Π΅Π΅ Π½ΠΎΠ²Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ измСняСм количСство строк ΠΈ столбцов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ.

Бпособ 2: ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° removeRow()

Π’Ρ‚ΠΎΡ€ΠΎΠΉ способ - ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° removeRow() ΠΈ Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ строки с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


# Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ всСх строк
while table_widget.rowCount() > 0:
    table_widget.removeRow(0)

# Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²Ρ‹Ρ… строк
table_widget.setRowCount(2)
table_widget.setColumnCount(3)
table_widget.setItem(0, 0, QTableWidgetItem("New Cell 1"))
table_widget.setItem(0, 1, QTableWidgetItem("New Cell 2"))
table_widget.setItem(0, 2, QTableWidgetItem("New Cell 3"))
table_widget.setItem(1, 0, QTableWidgetItem("New Cell 4"))
table_widget.setItem(1, 1, QTableWidgetItem("New Cell 5"))
table_widget.setItem(1, 2, QTableWidgetItem("New Cell 6"))
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ†ΠΈΠΊΠ», Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС строки ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° removeRow(). Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ добавляСм Π½ΠΎΠ²Ρ‹Π΅ строки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setRowCount() ΠΈ заполняСм ΠΈΡ… Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.

Бпособ 3: ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setItem()

Π’Ρ€Π΅Ρ‚ΠΈΠΉ способ - ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ содСрТимоС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ячСйки с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setItem(). Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


# ОбновлСниС содСрТимого ячСйки
table_widget.setItem(0, 0, QTableWidgetItem("Updated Cell Value"))
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ обновляСм содСрТимоС ячСйки (0, 0) Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° setItem(). ΠœΡ‹ просто ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° этому ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Ρ‚Ρ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… способа обновлСния QTableWidget Π² Python. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для вашСго прилоТСния Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… потрСбностСй. НадСюсь, эта ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² PyQt.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Python Code Review PyQt QTableWidget

Python ΠΈ PyQt ΠΎΠ±Π·ΠΎΡ€ Π²ΠΈΠ΄ΠΆΠ΅Ρ‚Π° QTableWidget ΠΈ практичСскоС использованиС

Python code review QTableWidget and QTableWidgetItem

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

✨ Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° всСгда Python? πŸš€

πŸ”Ž Как вывСсти ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ элСмСнты массива Π² Python: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

🐍 ΠŸΠΈΡ‚ΠΎΠ½ ΠΈΠ»ΠΈ с? Π§Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΡ‚ΡŒ? Π£Π·Π½Π°ΠΉΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСго сравнСния! ✨

πŸ”„ Как ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ QTableWidget Π² Python: простыС шаги

🐍 Python: Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ пустыС строки Π² ΠΊΠΎΠ΄Π΅?

πŸ”’ Как ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ python? ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π³Π°ΠΉΠ΄ для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… πŸ”’

πŸ›‘ Как ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ def python: эффСктивныС способы πŸ›‘