Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: coll3ctor от Март 15, 2011, 08:05



Название: Создание таблицы и её заполнение
Отправлено: coll3ctor от Март 15, 2011, 08:05
мне нужно используя класс связного списка, заполнить несколько узлов значениями, в области представления главного окна вывести таблицу, создать колонки и соответственно заполнить эту таблицу значениями из узлов связного списка.

На уровне псевдокода или алгоритма не могли бы вы объяснить как что будет и к чему обращаться ?



Название: Re: Создание таблицы и её заполнение
Отправлено: alexman от Март 15, 2011, 08:36
Так ты же сам практически псевдокод написал :) А так смотри QList, QLinkedList, QTableWidget, QMainWindow...


Название: Re: Создание таблицы и её заполнение
Отправлено: coll3ctor от Март 15, 2011, 10:34
Так ты же сам практически псевдокод написал :) А так смотри QList, QLinkedList, QTableWidget, QMainWindow...

не могли бы вы тогда накинуть кода, который бы создал таблицу?)


Название: Re: Создание таблицы и её заполнение
Отправлено: alexman от Март 15, 2011, 10:52
Код:
        QTableWidget* table = new QTableWidget( 3, 2 );

int i = 0;
for ( ; i < 3; ++i ) {
int j = 0;
for ( ; j < 2; ++j ) {
QTableWidgetItem* item = new QTableWidgetItem();
                        item->setText( QString( "(%1,%2)" ).arg( i ).arg( j ) );
table->setItem( i, j, item );
}
}


Название: Re: Создание таблицы и её заполнение
Отправлено: coll3ctor от Март 16, 2011, 21:14
Код:
        QTableWidget* table = new QTableWidget( 3, 2 );

int i = 0;
for ( ; i < 3; ++i ) {
int j = 0;
for ( ; j < 2; ++j ) {
QTableWidgetItem* item = new QTableWidgetItem();
                        item->setText( QString( "(%1,%2)" ).arg( i ).arg( j ) );
table->setItem( i, j, item );
}
}


Код:
ui.setupUi(this);

ui.tableWidget ->setRowCount(20);
ui.tableWidget ->setColumnCount(5);

// шапка start
/*   QString arr[5];
arr[0]="authorName";arr[1]="bookName";arr[2]="year";arr[3]="publishingHouse";arr[4]="requestCount";*/
QStringList arr;
arr << "authorName" << "bookName" << "year" << "publishingHouse" << "requestCount";
for(int i =0 ; i < 5; ++i)
{
QTableWidgetItem * lala = new QTableWidgetItem(arr[i]);
ui.tableWidget->setHorizontalHeaderItem(i,lala);
}
// шапка end



QString arr1[5];
arr1[0]="ivanov";
arr1[1]="physic";
arr1[2]="2005";
arr1[3]="tartar";
arr1[4]="16";

Kitap p1p("para","paraba",2,"mama",4);
p1p.bookName;
p1p.authorName;
    p1p.publishingHouse;
    p1p.year;
p1p.requestCount;


for(int i=0; i < 5 ; ++i)
{
    QTableWidgetItem * lal1 = new QTableWidgetItem(arr1[i]);
ui.tableWidget->setItem(0,i,lal1);
}

    QTableWidgetItem * lal4 = new QTableWidgetItem(p1p.bookName);
ui.tableWidget->setItem(1,0,lal4);

QTableWidgetItem * lal5 = new QTableWidgetItem(p1p.authorName);
ui.tableWidget->setItem(1,1,lal5);

QTableWidgetItem * lal6 = new QTableWidgetItem(p1p.publishingHouse);
ui.tableWidget->setItem(1,2,lal6);

QTableWidgetItem * lal7 = new QTableWidgetItem(p1p.year);
ui.tableWidget->setItem(1,3,lal7);

QTableWidgetItem * lal8 = new QTableWidgetItem(p1p.requestCount);
ui.tableWidget->setItem(1,4,lal8);

вот так вот создаётся таблица и заполняется :)


Название: Re: Создание таблицы и её заполнение
Отправлено: RULF от Апрель 08, 2011, 17:01
Здравствуйте!!! На Кути программирую относительно недавно. У меня есть вопрос практически на эту тему.
вот по нажатию кнопки создаю таблицу таблицу:
Код:
void MainWindow::on_pushButton_clicked()
{
QTableWidget *table = new QTableWidget(15,15,this);
}
и мне теперь по нажатию уже другой кнопки изменить SetGeometry.
Код:
void MainWindow::on_pushButton_2_clicked()
{
table->setGeometry(10,10,500,500);
}
Но не получается этого сделать, т.к. я думаю нужно сделать созданную таблицу глобальной.
а как реализовать это я не знаю.
ошибка: 'table' was not declared in this scope


Название: Re: Создание таблицы и её заполнение
Отправлено: alexman от Апрель 08, 2011, 21:15
Перенеси QTableWidget *table в поля класса MainWindow. Да и про ООП почитай.


Название: Re: Создание таблицы и её заполнение
Отправлено: RULF от Апрель 09, 2011, 15:23
Спасибо. сделал. все работает)