大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Qtプログラミング – スプレッドシート、アイコンなど

株式会社クローバーフィールドの経営理念
著者:津路高広
公開日:2019/10/15
最終更新日:2019/10/15
カテゴリー:技術情報

津路です。
私事ですが、台風の直前に秋の米収穫を終えました。
丁度稲がカラカラに乾いて、機械のつまりがなく無事終え、籾摺りなども終えました。

さて、前回で作成したスプレッドシートを2行3列に変更。

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です。

setWindowIcon(QICON(":/images/icon.png"));

また、これだけでは利用できずにコンパイルエラーとなります。
リソースファイルを用意する必要があります。

<!DOCTYPE RCC><RCC version="1.0">
<qresource>
    <file>images/icon.png</file>
</qresource>
</RCC>

上記の内容で、qrcファイルを作成し、qmake -project; qmake mainwindow.pro;
を実行し、Makefileを作成しなおします。

次に、ウィンドウタイトルに、ファイル名を表示します。

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と表示されます。

    上に戻る