crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Не могу получить текущую выделенную строку, QTableWidget и класс наследник QTableWidget
RazrFalcon
  опции профиля:
сообщение 11.3.2011, 20:49
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


.cpp
#include "mainwindow.h"
MainWindow::MainWindow()
{
    table = new tableWidget(this);
    table->setColumnCount(14);
    table->setRowCount(50);
    table->setSelectionBehavior(QAbstractItemView::SelectRows);

    setCentralWidget(table);

    connect(table,SIGNAL(cellClicked(int,int)),this,SLOT(on_cellClicked(int,int)));

    setMinimumSize(800,650);
}

void MainWindow::on_cellClicked(int row,int)
{
    qDebug()<<row;
    qDebug()<<"From MainWindow class"<<table->currentRow();
}

void MainWindow::on_currentRowIndexChanged(int row)
{
    qDebug()<<"From currentRowIndexChanged func"<<table->currentRow();
}

void tableWidget::keyPressEvent(QKeyEvent *event)
{
    MainWindow my;
    qDebug()<<my.table->rowCount();
    qDebug()<<"From tableWidget class"<<my.table->currentRow();
    my.table->setRowCount(600);
    my.on_currentRowIndexChanged(1);

    QTableWidget::keyPressEvent(event);
}
.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtGui>
#include <QtDebug>

class tableWidget : public QTableWidget
{
    Q_OBJECT

public:
    tableWidget(QWidget* parent = 0) {}
    void keyPressEvent(QKeyEvent *event);
};

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow();
    tableWidget *table;

public slots:
    void on_cellClicked(int row,int col);
    void on_currentRowIndexChanged(int row);
};
#endif // MAINWINDOW_H


Вывод консоли:
При клике:
6 
From MainWindow class 6

При нажатии клавиши:
50 
From tableWidget class -1
From currentRowIndexChanged func -1


Задача: получить номер текущей выделенной строки и передать ее в on_cellClicked

Сообщение отредактировал RazrFalcon - 11.3.2011, 20:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
abc
  опции профиля:
сообщение 11.3.2011, 21:46
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 221
Регистрация: 16.12.2010
Из: СПб
Пользователь №: 2272

Спасибо сказали: 26 раз(а)




Репутация:   4  


ты создал окно в KeyPressed, но никакую строку, конечно, не выделил, и currentRow возвращает -1 за неимением текущей строки
а onCellClicked сама даёт тебе номер строки, в чём недопонимание? моё или твоё?)

Сообщение отредактировал abc - 11.3.2011, 21:48
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


4 чел. читают эту тему (гостей: 4, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 11.12.2024, 10:58