Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 5, 2013 17:13:24

denveren0k
Зарегистрирован: 2012-09-06
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Внести список с возможностью выбора в QTableView

Доброго времени суток уважаемые форумчане.
Нужна ваша помощь, ни как не могу найти информацию как добавить список в таблицу, в которой потом можно выбирать?
С помощью модуля OpenOPC делаю выборку opc-серверов, выдает вот такой список

[u'Graybox.Sample.MinOPC.1.0', u'Graybox.Sample.ClrCreateTags.1.0', u'Graybox.Simulator.1', u'Graybox.Sample.ClrOPCProperties.1.0', u'Fastwel.Modbusopc.1', u'Graybox.Sample.VclOPC.1.0', u'Graybox.Sample.MinOPCInproc.1.0', u'Graybox.Sample.ClrLifeTime.1.0', u'OpcTestLab.OpcAnalyzer.1', u'IEC_104_server.OPCServer', u'Graybox.Sample.GraySim.1', u'Graybox.Sample.ClrMinOpc.1.0', u'Graybox.Sample.ClrTagPolling.1.0']
теперь необходимо вставить этот список в талицу, как я понимаю наилучшим решение будет добавление на форму QTableView и отображение там этого списка.
Искал очень упорно, но никак ни могу понять как это реализовать.
Заранее спасибо за помощь.

Офлайн

#2 Июнь 5, 2013 18:22:31

reclosedev
От: Н.Новгород
Зарегистрирован: 2012-03-29
Сообщения: 870
Репутация: +  173  -
Профиль   Отправить e-mail  

Внести список с возможностью выбора в QTableView

Если это именно одноуровневый список и нужно просто предоставить возможность выбора, проще использовать QListWidget, ну или QTableWidget.

from PyQt4 import QtGui, QtCore
 
app = QtGui.QApplication([])
 
def show_selected():
    for widget in (tableWidget, listWidget):
        print widget
        for item in widget.selectedItems():
            print item.text()
 
items = ['aaa', 'bbb', 'ccc', 'ddd']
 
window = QtGui.QWidget()
layout = QtGui.QVBoxLayout(window)
listWidget = QtGui.QListWidget()
listWidget.addItems(items)
layout.addWidget(listWidget)
 
tableWidget = QtGui.QTableWidget()
tableWidget.setRowCount(len(items))
tableWidget.setColumnCount(1)
for i, item in enumerate(items):
    tableWidget.setItem(i, 0, QtGui.QTableWidgetItem(item))
layout.addWidget(tableWidget)
button = QtGui.QPushButton("Show selected", clicked=show_selected)
layout.addWidget(button)
window.show()
app.exec_()
QListView, QTableView и т.п. отображают модель, см Model/View Programming. Нужны они, в основном, когда данные сложнее простого списка. Или когда необходимо несколько представлений для данных, например, таблица со значениями + диаграмма.

Офлайн

#3 Июнь 5, 2013 22:41:27

denveren0k
Зарегистрирован: 2012-09-06
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Внести список с возможностью выбора в QTableView

Огромное человеческое спасибо reclosedev

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version