Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
freeflowmc
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 39
1

QTableWidget

17.11.2014, 16:50. Просмотров 754. Ответов 3
Метки нет (Все метки)

Есть стандартная таблица 3х3 , при выделение двух ячеек они обмениваются содержимым,таблицу построил, но вот слот не могу правильно реализовать,есть наработки исходник ниже, помогите по возможности
dialog.h
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef DIALOG_H
#define DIALOG_H
#include <QDialog>
#include <QtGui>
namespace Ui {
class Dialog;
}
 
class Dialog : public QDialog
{
    Q_OBJECT
 
public:
    explicit Dialog(QWidget *parent = 0);
    ~Dialog();
    QTableWidgetItem *item;
    QStringList lst;
 
    int n;
 
private:
    Ui::Dialog *ui;
public slots:
    void onTableWidgetClicked(int col,int row);
};
 
#endif // DIALOG_H
dialog.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "dialog.h"
#include "ui_dialog.h"
int k = 0, l = 0;
Dialog::Dialog(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::Dialog)
{
       ui->setupUi(this);
       n = 3;
       lst << "First" << "Second" <<"Third";
       ui->tableWidget->setHorizontalHeaderLabels(lst);
       ui->tableWidget->setVerticalHeaderLabels(lst);
       for (int i  = 0; i < n; ++i) {
           for (int j = 0; j < n; ++j) {
               item = new QTableWidgetItem(QString("%1,%2").arg(i).arg(j));
               ui->tableWidget->setItem(i,j,item);
           }
       }
       ui->tableWidget->resize(350,150);
 
}
 
Dialog::~Dialog()
{
    delete ui;
}
void Dialog::onTableWidgetClicked(int row, int col){
 
    l = row;
    k = col;
 
    QString tmp;
    ui->tableWidget->item(l,k)->text(tmp);
    ui->tableWidget->item(l,k)->text(tmp) = ui->tableWidget->item(l,k)->text(tmp);
    ui->tableWidget->item(l,k)->text(tmp);
 
}
main.cpp
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
#include "dialog.h"
#include <QApplication>
 
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Dialog w;
    w.show();
 
    return a.exec();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2014, 16:50
Ответы с готовыми решениями:

QTableWidget
Здравствуйте ! Есть таблица QTableWidget, в одной из колонок расположена во...

QTableWidget
Создаю таблицу. И она размещается в углу.(см. вложение) QTableWidget...

QTableWidget
Здравствуйте! Создаю 21 колонку. ui-&gt;tableWidget-&gt;setColumnCount(21); ...

QT 5.6 C++ QTableWidget
Здравствуйте!!! Создал QTableWidget через дизайнер форм. Разобрался как...

QTableWidget
При создании QTableWidget *tableWidget = new QTableWidget(3, 3, this); я...

3
Chernobyl
217 / 217 / 69
Регистрация: 30.09.2012
Сообщений: 545
17.11.2014, 17:19 2
C++ (Qt)
1
ui->tableWidget->item(l,k)->text(tmp) = ui->tableWidget->item(l,k)->text(tmp);
Это что вообще такое?

Чтобы сделать это, нужно взять выделеные юзером клетки, верно? Для этого есть

C++ (Qt)
1
QList<QTableWidgetItem *> QTableWidget::selectedItems() const
Берем текст двух клеток, сохраняем в QString, юзаем qSwap и вставляем обратно. Глобальные переменные не юзаем.
0
freeflowmc
0 / 0 / 0
Регистрация: 26.11.2013
Сообщений: 39
17.11.2014, 18:04  [ТС] 3
Добавлено через 33 секунды
Извините за грубость а можете показать как это реализовать))
0
Chernobyl
217 / 217 / 69
Регистрация: 30.09.2012
Сообщений: 545
17.11.2014, 18:44 4
freeflowmc, И все же, нужно сначала постараться самому и спросить в чем проблема если ничего не получилось.

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
    QList<QTableWidgetItem*>list = ui->tableWidget->selectedItems();
    if(list.size() == 2)
    {
        QString f,s;
        f = list.first()->text();
        s = list.last()->text();
        qSwap(f,s);
        list.first()->setText(f);
        list.last()->setText(s);
    }
    else
        qDebug() << "wrong!";
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2014, 18:44

qtablewidget
qtablewidget заполняется данными, можно ли сделать так что бы щелчек по ячейки...

QTableWidget
Есть стандартная таблица 3х3 , но при выделение двух ячеек они обмениваются...

QTableWidget
хочу подсчитать среднее значение в столбцах void MTable::averange() { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru