朝木です。

以下の件ですが、挙動の変更はOS X用のコードを追加した際の副作用になります。
5.5では修正されていたと思いますが、
すぐに確認できる環境にいません。

よければ、5.5ベータで試して見てください。

欠ける件は知らなかったので、確認してみます。


Sent from Mailbox


On Mon, Jun 8, 2015 at 7:56 AM, MURATA Yasuhisa <murata@nips.ac.jp> wrote:

はじめまして。生理学研究所の村田と申します。

Qt5.3で作成していたアプリを
Qt5.4.1 + Windows7 の環境でビルドしてみたところ、
キーボードニーモニックの挙動が変わっていて
とまどっています。

例えば、
label = new QLabel(tr("検索(&F):"));
というようなコードの場合、
Qt5.3では、なにもしなくても
検索(F):
のように表示されたのですが、
Qt5.4では、
検索:
としか表示されず、Altキーを押すことで、
「(F)」の部分が表示されるようになりました。

ただし、この「(F)」の部分の表示が不完全で、
レイアウトによっては、
検索(
のように後半が欠けた表示になってしまいます。
(該当のコードを本メールの最後に掲載いたします。)

キーボードニーモニックの挙動を
Qt5.3の時のように戻したいのですが、
やり方がわかりません。

もしご存知でしたらご教示いただけないでしょうか?
よろしくお願いいたします。


======== 以下が該当のコードです ========

==== main.cpp ====
#include <QApplication>

#include "finddialog.h"

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
FindDialog *dialog = new FindDialog;
dialog->show();
return app.exec();
}

==== finddialog.h ====
#ifndef FINDDIALOG_H
#define FINDDIALOG_H

#ifdef _MSC_VER
#pragma execution_character_set("utf-8")
#endif

#include <QDialog>

class QLabel;
class QLineEdit;

class FindDialog : public QDialog
{
Q_OBJECT

public:
FindDialog(QWidget *parent = 0);

private:
QLabel *label;
QLineEdit *lineEdit;
};

#endif


==== finddialog.cpp ====
#include <QtWidgets>

#include "finddialog.h"

FindDialog::FindDialog(QWidget *parent)
: QDialog(parent)
{
label = new QLabel(tr("検索(&F):"));
lineEdit = new QLineEdit;
label->setBuddy(lineEdit);

QHBoxLayout *topLayout = new QHBoxLayout;
topLayout->addWidget(label);
topLayout->addWidget(lineEdit);
setLayout(topLayout);

setWindowTitle(tr("Find"));
setFixedHeight(sizeHint().height());
}

--
村田 安永


_______________________________________________
Qt-users mailing list
Qt-users@qt-users.jp
http://qt-users.jp/mailman/listinfo/qt-users