Qtプログラミング – スプレッドシート、アイコンなど
津路です。
私事ですが、台風の直前に秋の米収穫を終えました。
丁度稲がカラカラに乾いて、機械のつまりがなく無事終え、籾摺りなども終えました。
さて、前回で作成したスプレッドシートを2行3列に変更。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Spreadsheet::Spreadsheet(QWidget *parent) : QTableWidget(parent) { clear(); } void Spreadsheet::clear() { setRowCount(0); setColumnCount(0); setRowCount(2); setColumnCount(3); for(int i=0; i<3; ++i) { QTableWidgetItem *item = new QTableWidgetItem; item->setText(QString(QChar('A'+i))); setHorizontalHeaderItem(i,item); } setCurrentCell(0,0); } |
次にアプリのアイコンです。
教科書には、以下のように書かれているのですが、QICONではなく、QIconです。
1 | setWindowIcon(QICON(":/images/icon.png")); |
また、これだけでは利用できずにコンパイルエラーとなります。
リソースファイルを用意する必要があります。
1 2 3 4 5 | <!DOCTYPE RCC><RCC version="1.0"> <qresource> <file>images/icon.png</file> </qresource> </RCC> |
上記の内容で、qrcファイルを作成し、qmake -project; qmake mainwindow.pro;
を実行し、Makefileを作成しなおします。
次に、ウィンドウタイトルに、ファイル名を表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | void MainWindow::setCurrentFile(const QString &fileName) { curFile = fileName; setWindowModified(false); QString showName = "Untitled"; if(!curFile.isEmpty()) { showName = strippedName(curFile); recentFiles.removeAll(curFile); recentFiles.prepend(curFile); } setWindowTitle(tr("%1[*] - %2").arg(showName).arg(tr("Spreadsheet"))); } QString MainWindow::strippedName(const QString &fullFileName) { return QFileInfo(fullFileName).fileName(); } |
上記によって、タイトルバーにUntitled – Spreadsheetと表示されます。