Программирование на C++ с использованием библиотеки Qt4



         

Листинг 7. Меню и строка состояния (файл examples-qt/02/02.cpp)


1 #include <QtGui> 2 #include "02.h" 3 4 MainWindow::MainWindow() { 5 6 QTextCodec *codec = QTextCodec::codecForName("CP1251"); 7 QTextCodec::setCodecForTr(codec); 8 9 aboutAction = new QAction(tr("&О программе"), this); 10 aboutAction->setStatusTip(tr("Сведения о программе")); 11 connect(aboutAction, SIGNAL(triggered()), this, SLOT(about())); 12 13 exitAction = new QAction(tr("В&ыход"), this); 14 exitAction->setStatusTip(tr("Выход из программы")); 15 exitAction->setShortcut(tr("Ctrl+Q")); 16 connect(exitAction, SIGNAL(triggered()), this, SLOT(close())); 17 18 fileMenu = menuBar()->addMenu(tr("&Файл")); 19 fileMenu->addAction(aboutAction); 20 fileMenu->addSeparator(); 21 fileMenu->addAction(exitAction); 22 23 sb1 = new QLabel(statusBar()); 24 sb2 = new QLabel(statusBar()); 25 sb3 = new QLabel(statusBar()); 26 27 statusBar()->setSizeGripEnabled(false); 28 statusBar()->addWidget(sb1, 2); 29 statusBar()->addWidget(sb2, 1); 30 statusBar()->addWidget(sb3, 1); 31 32 sb1->setText(tr("Привет!")); 33 34 setMouseTracking(true); 35 } 36 37 38 void MainWindow::resizeEvent(QResizeEvent *event) { 39 QSize sz = event->size(); 40 sb2->setText( 41 QString( "(%1, %2)" ).arg( sz.width() ).arg( sz.height() ) ); 42 } 43 44 void MainWindow::mouseMoveEvent(QMouseEvent *event) { 45 QPoint pos = event->pos(); 46 sb3->setText( 47 QString( "%1, %2" ).arg( pos.x() ).arg( pos.y() ) ); 48 } 49 50 void MainWindow::about() { 51 QMessageBox::about( 52 this, tr("О программе"), 53 tr("<h2>Простое приложение Qt4</h2>" 54 "<p>Окно с меню и строкой состояния")); 55 } 56 57 bool MainWindow::askOnClose() { 58 int r = QMessageBox::question( 59 this, tr("Подтвердите"), 60 tr("Выйти из программы?"), 61 QMessageBox::Yes | QMessageBox::No, 62 QMessageBox::Yes, 63 QMessageBox::Cancel | QMessageBox::Escape); 64 return (r == QMessageBox::Yes); 65 } 66 67 void MainWindow::closeEvent(QCloseEvent *event) { 68 if (askOnClose()) { 69 event->accept(); 70 } else { 71 event->ignore(); 72 } 73 } 74 75 int main(int argc, char *argv[]) { 76 QApplication app(argc, argv); 77 MainWindow mainWin; 78 mainWin.show(); 79 return app.exec(); 80 }




Содержание  Назад  Вперед