2013-10-10 4 views
1

По умолчанию QPlainTextEdit имеет только вертикальную полосу прокрутки, я хочу добавить горизонтальную полосу прокрутки.Qt - недопустимое использование класса неполного типа QScrollBar - добавление горизонтальной полосы прокрутки в текстовый виджет редактирования

Я попробовал это (этот код в конструктор класса QMainWindow)

QPlainTextEdit * editor = new QPlainTextEdit(this); 
QScrollBar * hScroll = new QScrollBar(Qt::Horizontal); 
editor->addScrollBarWidget(hScroll); 
setCentralWidget(editor); 

но сборка не удалось с ошибкой (неправильное использование неполного типа «класса QScrollBar»).

ответ

1

Вы можете легко добавить горизонтальную полосу прокрутки в QPlainTextEdit Widget, установив свойство линии обруча, код должен быть:

QPlainTextEdit * editor = new QPlainTextEdit(this); 
editor->setLineWrapMode(QPlainTextEdit::NoWrap); 
setCentralWidget(editor); 

QPlainTextEdit::NoWrap режим автоматически добавит горизонтальную полосу прокрутки, когда ширина линии превышает редактор ширина.

+0

, но горизонтальная полоса не видна до тех пор, пока не будет написана длинная строка. есть ли способ сделать скроллер активированным по умолчанию? спасибо –

+1

Зачем вам нужна полоса прокрутки, если в редакторе нет длинных строк? Как вертикальные, так и горизонтальные полосы прокрутки появляются только тогда, когда содержимое превышает размеры редактора. –