QTableView. Перенос длинной строки на новую строку



  • Добрый день.
    Помогите пожалуйста. Необходимо длинную строку в таблице переносить вниз. Например в Excel у ячеек есть свойство "переносить по словам". Есть ли такое же для таблиц или от чего отталкивается, чтобы запрограммировать самому?



  • Первое, что пришло в голову - это просто взять указатель со старой ячейки, сунуть в новую, а в старой затереть.
    https://qt-project.org/doc/qt-4.8/qabstractitemview.html#setIndexWidget



  • Извините, не совсем понятно, а разве QTableView::setWordWrap(bool) не работает?
    По умолчанию он вроде бы даже включен(т.е. true).



  • Попробовал. Но в таблице текст идет в одну строку и обрывается с "...".
    Тип поля about - varchar(255)

    @#include "list_room_form.h"
    #include "ui_list_room_form.h"

    #include "connection.h"

    ListRoomForm::ListRoomForm(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::ListRoomForm)
    {
    ui->setupUi(this);

    tblRoom = new QSqlTableModel(this);
    tblRoom->setTable("\"V_ROOM\"");
    tblRoom->select();
    
    ui->tableKab->setModel(tblRoom);
    ui->tableKab->setWordWrap(true);
    
    setNameFields();
    

    }

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

    void ListRoomForm::setNameFields()
    {

    tblRoom->setHeaderData(room_num, Qt::Horizontal, tr("Num room"));
    tblRoom->setHeaderData(roomtype_name, Qt::Horizontal, tr("Type room"));
    tblRoom->setHeaderData(room_about, Qt::Horizontal, tr("Description"));
    tblRoom->setHeaderData(ViewKab_fam_io, Qt::Horizontal, tr("Managing an office"));
    
    ui->tableKab->setSelectionMode(QAbstractItemView::SingleSelection);
    ui->tableKab->setSelectionBehavior(QAbstractItemView::SelectRows);
    ui->tableKab->setEditTriggers(QAbstractItemView::NoEditTriggers);
    
    ui->tableKab->setColumnHidden(men_respond_id, true);
    ui->tableKab->setColumnHidden(roomtype_id, true);
    
    ui->tableKab->resizeColumnsToContents();
    
    QHeaderView *header = ui->tableKab->horizontalHeader();
    header->setStretchLastSection(true);
    

    }@



  • Всем спасибо. Действительно там уже все есть.
    Надо было только установить высоту строки.
    @ui->tableKab->setRowHeight(0, 40);@



  • setWordWrap работает когда весь текст помешается в ячейку, а если нет - помещает в одно строку с тремя точками. А как отображать ячейку с текстом в несколько строк независимо от того помещаются он туда полностью или нет? Чтобы те же три точки переместились ниже в зависимости от высоты строки.



  • setWordWrap работает когда весь текст помешается в ячейку, а если нет - помещает в одно строку с тремя точками. А как отображать ячейку с текстом в несколько строк независимо от того помещаются он туда полностью или нет? Чтобы те же три точки переместились ниже в зависимости от высоты строки.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.