How to Use QTableWidget/bg: Difference between revisions

From Qt Wiki
Jump to navigation Jump to search
No edit summary
 
(Don't #include the module prefix)
 
(8 intermediate revisions by 2 users not shown)
Line 1: Line 1:
'''Български''' [[How to Use QTableWidget|English]]
{{Cleanup | reason=Auto-imported from ExpressionEngine.}}


=Как се ползва QTableWidget=
[[Category:Developing with Qt::General]]
[[Category:HowTo]]
[[Category:Snippets]]
[[Category:Tutorial]]


==Общ преглед на QTableWidget==


Чрез [http://doc.qt.io/qt-5.0/qtwidgets/qtablewidget.html QTableWidget] ''[qt.io]'' могат да се вграждат таблици в Qt приложения. QTableWidget наследява [http://doc.qt.io/qt-5.0/qtwidgets/qtableview.html QTableView] ''[qt.io]''. Елементите в инстанцията на QTableWidget са от клас [http://doc.qt.io/qt-5.0/qtwidgets/qtablewidgetitem.html QTableWidgetItem] ''[qt.io]''.
'''Български''' [[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].


====Вкарване на данни====
== Основна употреба ==


Най-лесният начин да се постави текст в клетка:<br />
==== Задаване на броя на колоните и на редовете ====


====Скриване на вертикалната номерация на редовете====
<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>


Поведението на таблицата при селектиране на редове и клекти може да бъде променено от програмста чрез методите [http://doc.qt.io/qt-5.0/qtwidgets/qabstractitemview.html#SelectionBehavior-enum setSelectionBehavior] ''[qt.io]'' и [http://doc.qt.io/qt-5.0/qtwidgets/qabstractitemview.html#SelectionMode-enum setSelectionMode] ''[qt.io]''. Приложеният пример позволява само единична селекция на цял ред:
==== Скриване на вертикалната номерация на редовете ====


====Управление на сигнали====
</code>m_pTableWidget->verticalHeader()->setVisible(false);</code>


QTableWidget осигурява подходящи [http://doc.qt.nokia.com/latest/qtablewidget.html#signals сигнали за всяко събитие като промяна в селекцията, натискане и др.] ''[doc.qt.nokia.com]'' Пример за прихващане на сигнал от двойно бързо натискане на клетка:
==== Скриване на решентката ====
<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()
{
}


[http://www.developer.nokia.com/Community/Wiki/index.php?title=How_to_use_QTableWidget_in_Qt How to use QTableWidget in Qt] ''[developer.nokia.com]''<br />[http://doc.qt.nokia.com/latest/stylesheet-examples.html#customizing-qtableview Customizing QTableView] ''[doc.qt.nokia.com]''
void MainWindow::cellSelected(int nRow, int nCol)
{
QMessageBox::information(this, "",
"Cell at row "''QString::number(nRow)''
" column "''QString::number(nCol)''
" was double clicked.");
}
<code>


===Categories:===
== Вижте също ==


* [[:Category:Developing-with-Qt|Developing with Qt]]
[http://www.developer.nokia.com/Community/Wiki/index.php?title=How_to_use_QTableWidget_in_Qt How to use QTableWidget in Qt]
** [[:Category:Developing-with-Qt::General|General]]
* [[:Category:HowTo|HowTo]]
* [[:Category:snippets|snippets]]
* [[:Category:Tutorial|Tutorial]]

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
  1. include "mainwindow.h"
  1. include <QApplication>
  2. include <QDesktopWidget>
  3. include <QCoreApplication>
  4. include <QHeaderView>
  5. 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.");

}

Вижте също

How to use QTableWidget in Qt