#include <QMainWindow>#include <QApplication>#include <QPainter>#include <QStatusBar>#include <QEvent>#include <QHBoxLayout>#include <QWidget>class ScrollLabel2 : public QWidget{ Q_OBJECTpublic: ScrollLabel2( QWidget* parent = 0 ) : QWidget( parent ) { w = new QWidget( this ); //w->setMinimumSize( 300, w->minimumHeight() );//Так работает, но затем окно невозможно сжать по ширине! w->resize( 300, w->minimumHeight() );//Так даже ничего не рисуется! w->installEventFilter( this ); QHBoxLayout* layout = new QHBoxLayout; layout->setMargin( 0 ); layout->setSpacing( 0 ); layout->addWidget( w );//На самом деле здесь добавляется больше виджетов! setLayout( layout ); }protected: bool eventFilter( QObject* o, QEvent* e ) { if ( o == w && e->type() == QEvent::Paint ) { QPainter painter( w ); painter.setPen( Qt::black ); painter.setFont( qApp->font() ); painter.drawText( rect(), Qt::AlignCenter, "Hello!" ); return true; } return QWidget::eventFilter( o, e ); } QWidget* w;};class MainWindow2 : public QMainWindow{ Q_OBJECTpublic: MainWindow2( QWidget* parent = 0, Qt::WindowFlags flags = 0 ) : QMainWindow( parent, flags ) { ScrollLabel2* scrollLabel = new ScrollLabel2( this ); QStatusBar* statusBar = new QStatusBar; statusBar->addWidget( scrollLabel, 0, true ); setStatusBar( statusBar ); }};