How to Use QTableWidget/bg: Difference between revisions
No edit summary |
AutoSpider (talk | contribs) (Don't #include the module prefix) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{Cleanup | reason=Auto-imported from ExpressionEngine.}} | |||
[[Category:Developing with Qt::General]] | |||
[[Category:HowTo]] | |||
[[Category:Snippets]] | |||
[[Category:Tutorial]] | |||
'''Български''' [[How_to_Use_QTableWidget|English]] | |||
= | = Как се ползва QTableWidget = | ||
== | == Общ преглед на QTableWidget == | ||
Чрез [http://doc.qt.io/qt-5.0/qtwidgets/qtablewidget.html QTableWidget] могат да се вграждат таблици в Qt приложения. QTableWidget наследява [http://doc.qt.io/qt-5.0/qtwidgets/qtableview.html QTableView]. Елементите в инстанцията на QTableWidget са от клас [http://doc.qt.io/qt-5.0/qtwidgets/qtablewidgetitem.html QTableWidgetItem]. | |||
== | == Основна употреба == | ||
==== Задаване на броя на колоните и на редовете ==== | |||
<code>m_pTableWidget->setRowCount(10); | |||
m_pTableWidget->setColumnCount(3);</code> | |||
==== | ==== Вкарване на наименования на колоните ==== | ||
<code>m_TableHeader<<"#"<<"Name"<<"Text"; | |||
m_pTableWidget->setHorizontalHeaderLabels(m_TableHeader);</code> | |||
==== | ==== Вкарване на данни ==== | ||
Най-лесният начин да се постави текст в клетка: | |||
<code>m_pTableWidget->setItem(0, 1, new QTableWidgetItem("Hello"));<code> | |||
==== Скриване на вертикалната номерация на редовете ==== | |||
</code>m_pTableWidget->verticalHeader()->setVisible(false);</code> | |||
==== Скриване на решентката ==== | |||
<code>m_pTableWidget->setShowGrid(false);<code> | |||
==Пример== | ==== Задаване на фон на селектирани елементи ==== | ||
</code>m_pTableWidget->setStyleSheet("QTableView {selection-background-color: red;}");</code> | |||
==== Забраняване на редакцията ==== | |||
<code>m_pTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);<code> | |||
==== Поведение при селектиране ==== | |||
Поведението на таблицата при селектиране на редове и клекти може да бъде променено от програмста чрез методите [http://doc.qt.io/qt-5.0/qtwidgets/qabstractitemview.html#SelectionBehavior-enum setSelectionBehavior] и [http://doc.qt.io/qt-5.0/qtwidgets/qabstractitemview.html#SelectionMode-enum setSelectionMode]. Приложеният пример позволява само единична селекция на цял ред: | |||
</code>m_pTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); | |||
m_pTableWidget->setSelectionMode(QAbstractItemView::SingleSelection);<code> | |||
==== Управление на сигнали ==== | |||
QTableWidget осигурява подходящи [http://doc.qt.nokia.com/latest/qtablewidget.html#signals сигнали за всяко събитие като промяна в селекцията, натискане и др.] Пример за прихващане на сигнал от двойно бързо натискане на клетка: | |||
</code>connect( m_pTableWidget, SIGNAL( cellDoubleClicked (int, int) ), this, SLOT( cellSelected( int, int ) ) );</code> | |||
== Пример == | |||
Следният програмен код използва QTableWidget и всички изброени случай на употреба по-горе. Успешно е тестван на Symbian^3 устройство. | Следният програмен код използва QTableWidget и всички изброени случай на употреба по-горе. Успешно е тестван на Symbian^3 устройство. | ||
* mainwindow.h | * mainwindow.h | ||
<code>#include <QTableWidget><code> | |||
</code> | |||
private slots: | |||
void cellSelected(int nRow, int nCol); | |||
private: | |||
QTableWidget* m_pTableWidget; | |||
QStringList m_TableHeader; | |||
<code> | |||
* mainwindow.cpp | * mainwindow.cpp | ||
= | </code> | ||
#include "mainwindow.h" | |||
#include <QApplication> | |||
#include <QDesktopWidget> | |||
#include <QCoreApplication> | |||
#include <QHeaderView> | |||
#include <QMessageBox> | |||
MainWindow::MainWindow(QWidget *parent) | |||
: QMainWindow(parent), | |||
m_pTableWidget(NULL) | |||
{ | |||
m_pTableWidget = new QTableWidget(this); | |||
m_pTableWidget->setRowCount(10); | |||
m_pTableWidget->setColumnCount(3); | |||
m_TableHeader<<"#"<<"Name"<<"Text"; | |||
m_pTableWidget->setHorizontalHeaderLabels(m_TableHeader); | |||
m_pTableWidget->verticalHeader()->setVisible(false); | |||
m_pTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); | |||
m_pTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); | |||
m_pTableWidget->setSelectionMode(QAbstractItemView::SingleSelection); | |||
m_pTableWidget->setShowGrid(false); | |||
m_pTableWidget->setStyleSheet("QTableView {selection-background-color: red;}"); | |||
m_pTableWidget->setGeometry(QApplication::desktop()->screenGeometry()); | |||
//insert data | |||
m_pTableWidget->setItem(0, 1, new QTableWidgetItem("Hello")); | |||
connect( m_pTableWidget, SIGNAL( cellDoubleClicked (int, int) ), | |||
this, SLOT( cellSelected( int, int ) ) ); | |||
} | |||
MainWindow::~MainWindow() | |||
{ | |||
} | |||
void MainWindow::cellSelected(int nRow, int nCol) | |||
{ | |||
QMessageBox::information(this, "", | |||
"Cell at row "''QString::number(nRow)'' | |||
" column "''QString::number(nCol)'' | |||
" was double clicked."); | |||
} | |||
<code> | |||
== | == Вижте също == | ||
[http://www.developer.nokia.com/Community/Wiki/index.php?title=How_to_use_QTableWidget_in_Qt How to use QTableWidget in Qt] | |||
Latest revision as of 13:26, 27 April 2015
This article may require cleanup to meet the Qt Wiki's quality standards. Reason: Auto-imported from ExpressionEngine. Please improve this article if you can. Remove the {{cleanup}} tag and add this page to Updated pages list after it's clean. |
Български English
Как се ползва QTableWidget
Общ преглед на QTableWidget
Чрез QTableWidget могат да се вграждат таблици в Qt приложения. QTableWidget наследява QTableView. Елементите в инстанцията на QTableWidget са от клас QTableWidgetItem.
Основна употреба
Задаване на броя на колоните и на редовете
m_pTableWidget->setRowCount(10);
m_pTableWidget->setColumnCount(3);
Вкарване на наименования на колоните
m_TableHeader<<"#"<<"Name"<<"Text";
m_pTableWidget->setHorizontalHeaderLabels(m_TableHeader);
Вкарване на данни
Най-лесният начин да се постави текст в клетка:
m_pTableWidget->setItem(0, 1, new QTableWidgetItem("Hello"));<code>
==== Скриване на вертикалната номерация на редовете ====
m_pTableWidget->verticalHeader()->setVisible(false);
Скриване на решентката
m_pTableWidget->setShowGrid(false);<code>
==== Задаване на фон на селектирани елементи ====
m_pTableWidget->setStyleSheet("QTableView {selection-background-color: red;}");
Забраняване на редакцията
m_pTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);<code>
==== Поведение при селектиране ====
Поведението на таблицата при селектиране на редове и клекти може да бъде променено от програмста чрез методите [http://doc.qt.io/qt-5.0/qtwidgets/qabstractitemview.html#SelectionBehavior-enum setSelectionBehavior] и [http://doc.qt.io/qt-5.0/qtwidgets/qabstractitemview.html#SelectionMode-enum setSelectionMode]. Приложеният пример позволява само единична селекция на цял ред:
m_pTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); m_pTableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
==== Управление на сигнали ====
QTableWidget осигурява подходящи [http://doc.qt.nokia.com/latest/qtablewidget.html#signals сигнали за всяко събитие като промяна в селекцията, натискане и др.] Пример за прихващане на сигнал от двойно бързо натискане на клетка:
connect( m_pTableWidget, SIGNAL( cellDoubleClicked (int, int) ), this, SLOT( cellSelected( int, int ) ) );
Пример
Следният програмен код използва QTableWidget и всички изброени случай на употреба по-горе. Успешно е тестван на Symbian^3 устройство.
- mainwindow.h
#include <QTableWidget><code>
private slots:
void cellSelected(int nRow, int nCol);
private:
QTableWidget* m_pTableWidget;
QStringList m_TableHeader;
* mainwindow.cpp
- include "mainwindow.h"
- include <QApplication>
- include <QDesktopWidget>
- include <QCoreApplication>
- include <QHeaderView>
- include <QMessageBox>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent), m_pTableWidget(NULL)
{
m_pTableWidget = new QTableWidget(this); m_pTableWidget->setRowCount(10); m_pTableWidget->setColumnCount(3); m_TableHeader<<"#"<<"Name"<<"Text"; m_pTableWidget->setHorizontalHeaderLabels(m_TableHeader); m_pTableWidget->verticalHeader()->setVisible(false); m_pTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); m_pTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); m_pTableWidget->setSelectionMode(QAbstractItemView::SingleSelection); m_pTableWidget->setShowGrid(false); m_pTableWidget->setStyleSheet("QTableView {selection-background-color: red;}"); m_pTableWidget->setGeometry(QApplication::desktop()->screenGeometry());
//insert data m_pTableWidget->setItem(0, 1, new QTableWidgetItem("Hello"));
connect( m_pTableWidget, SIGNAL( cellDoubleClicked (int, int) ),
this, SLOT( cellSelected( int, int ) ) );
}
MainWindow::~MainWindow() { }
void MainWindow::cellSelected(int nRow, int nCol) {
QMessageBox::information(this, "", "Cell at row "QString::number(nRow) " column "QString::number(nCol) " was double clicked.");
}
Вижте също