LINUX.ORG.RU

[Qt] QTableWidget, номер строки из столца слева


0

1

В QTableWidget было вставлено 1000 строк, затем ползунок был перемещён на середину. У виджета QTableWidget слева отображается столбец с номерами строк, как получить текущее значение из этого столбца для самой верхней отображаемой строки?

Может уже осилить почитать документацию?

fluorite ★★★★★ ()
Ответ на: комментарий от arsi

>верхней отображаемой строки

а ваш вариант для первой вообще вставленной в виджет.

Странно что ТС ничего незаметил

guilder ()
Ответ на: комментарий от guilder

>а ваш вариант для первой вообще вставленной в виджет.

Странно что ТС ничего незаметил

Если TC это я то я пока ещё не проверял, только проснулся.

Насколько я понял rowAt() в Y координатах ведёт поиск т.е. в пикселах или всё же в логических номерах строк?

cppruled ()
Ответ на: комментарий от cppruled

судя по моей памяти пиксели для таких вещей надо вытаскивать через viewport

guilder ()
Ответ на: комментарий от Kosyak

>Блин, ТС, три темы за 24 часа, это уж слишком, осиль Assistant, там все это есть.

Форум для того и существует, чтобы вопросы задавать, если тебе это не нравится вали отсюда.

cppruled ()
Ответ на: комментарий от arsi

проверил сам, да признаю 4.2, странно но раньше было по другому или я возможно перепутал с QTableView

ТС вот те КОД(стандартный проект qtcreator):

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->tableWidget->setRowCount(100);
    ui->tableWidget->setColumnCount(1);
    for(int row=0;row<100;row++){

        ui->tableWidget->setItem(row, 0, new QTableWidgetItem(tr("%1").arg(
                (row+1)*(1))));
    }

}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::changeEvent(QEvent *e)
{
    QMainWindow::changeEvent(e);
    switch (e->type()) {
    case QEvent::LanguageChange:
        ui->retranslateUi(this);
        break;
    default:
        break;
    }
}

void MainWindow::on_pushButton_2_clicked()
{
    QMessageBox msgBox;
    msgBox.setText(ui->tableWidget->item(ui->tableWidget->rowAt(0),0)->text());
    msgBox.exec();
}

guilder ()
Ответ на: комментарий от anonymous

>Форум существует для адекватных людей. Так что сам вали отсюда.

2Kosyak, адекватный человек не стал бы шифроваться под анонимусом.

cppruled ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.