問題タブ [qmainwindow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
6190 参照

qt4 - Qt(またはPyQt)で1つのメインウィンドウを別のメインウィンドウに呼び出す方法

私のプロジェクトでは、mainwindow1 (実行中) から mainwindow2 を呼び出したい 2 つのメインウィンドウを作成しました。mainwindow1 では既に app.exec_() (PyQt) を使用しており、maindow2 を表示するためにボタンのクリック イベントで maindow2.show() を使用していますが、何も表示されません

0 投票する
3 に答える
8630 参照

pyqt4 - QMainwindow を画面中央に表示する

プロジェクトのメイン ウィンドウを画面の中央に表示したい。「self.show()」を呼び出すと、ウィンドウが画面の中央に表示されます。

0 投票する
1 に答える
3861 参照

qt4 - QMainWindow からすべてのツールバーを削除/非表示にするにはどうすればよいですか?

サードパーティの QMainWindow があり、それを自分の QMainWindow に埋め込む必要があります (つまり、通常のウィジェットとして使用します)。(控えめに言っても)ベストプラクティスではないことはわかっていますが、今のところ他に方法がありません。

サードパーティ ウィンドウのステータスバー、メニューバー、およびツールバーを非表示にする必要があります。ステータスバー (setStatusBar(0)) とメニューバー (setMenuBar(0)) を削除できましたが、ツールバー領域で同じことを行う方法が見つかりません

ツールバーを非表示/削除する方法はありますか?

0 投票する
3 に答える
7562 参照

qt - Qt4: QMainWindow インスタンスを他の QWidget/QMainWindow 内に配置する

QMainWindow インスタンスを別の QWidget 内に配置したいと思います (たとえば、別の QMainWindow の centralWidget)。

なぜうまくいかないのだろうか?QMainWindow は QWidget から直接継承します。別の QWidget 内に QWidget を配置すると、正常に動作します。

QMainWindow インスタンスを QTabBar に問題なく配置することがよくあります。

ps QMainWindow を使用する必要があるのはなぜですか? 垂直レイアウトを使用して、1 つのフォーム内に 2 つのウィジェットを配置したいと考えています。両方のウィジェットに、直接それらの上に個別のツールバーを配置したいと考えています。

QtCreator を使用してプレーン QWidgets 内にツールバーを配置する方法が他にあるのではないでしょうか?


編集

最初の例 (正常に動作します)

QWidget に基づいて新しいクラス/フォームを作成します。(QtCreator は、標準テンプレートに基づいて 3 つのファイル *.cpp、*.h、および *.ui を作成します)。

クラス宣言はこんな感じ

このウィジェットを使用して別のウィジェット内に配置しようとすると、正常に動作します。qtcreator の "promote to ..." 機能を使用しました - ここでは問題ありません。

2 番目の例 (機能しません)

QMainWindow に基づいて新しいクラス/フォームを作成します。(QtCreator は、標準テンプレートに基づいて 3 つのファイル *.cpp、*.h、および *.ui を作成します)。

クラス宣言は次のようになります。

そして今、このウィジェットを別のウィジェットに配置しようとすると、表示されません。以前と同じように、qtcreator の "promote to ..." 機能を使用しました。

両方のウィジェット (最初は QWidget に基づいており、2 番目は QMainWindow に基づいています) は、標準の qtcreator コード テンプレートに基づいた同じデフォルト構造を持っています。ここではあまり変更していません。フォーム デザイナーにいくつかのボタンを追加しただけです。

2 番目の例では、クラス インスタンスで setEnabled(true) と setVisible(true) を使用しようとしました。最初のものは結果を与えません。2 つ目は、このウィジェットを別のウィンドウで開きます。


大きな問題は、QMainWindow を別の QWidget 内にネストすることを禁止するものだと思います。前に書いたように、QMainWindow インスタンスは問題なく QTabWidgets 内に配置できます。

0 投票する
1 に答える
168 参照

python - シグナルを使用して画面をポップアップする

信号を使用して小さな画面を表示するのに少し問題があります。これまでのすべてを短縮すると、次のコードで問題が表示されます。

このプログラムを実行すると、「情報」ウィンドウが自動的にポップアップします。ただし...メニューの「about...」をクリックするたびに、または割り当てられたショートカットを使用するときにのみ、これが発生するようにします。

問題が歴史に残るようにコードを改善するにはどうすればよいですか?

ごきげんよう!

0 投票する
3 に答える
2270 参照

qt4 - QMainWindow - QGraphicsView のサイズ変更の問題

Ubuntu 10.4 で Qt 4.6 を使用する

MainWindow に QGraphicsView 中央ウィジェットがあります。プログラムが新しいレベル (倉庫番ゲーム) に切り替わるたびに、MainWindow をビューの新しいサイズに合わせて調整したいと考えています。メインウィンドウとビューの両方の最大および最小の幅/高さを同じものに設定することでこれを達成しました。これはほとんどの場合うまくいきますが、いくつかの小さなレベルでは、メインウィンドウは 1 次元でのみ縮小し、白い余白が残ります。片側は次のように:

私の倉庫番ゲーム

ビューをクリックするまではそのままで、その時点で MainWindow がビューに縮小されます。その前にキーストロークを入力して、男を動かしたり、他のコマンドを実行したりできます。マージンはそのままです。マウスをクリックして縮小する必要があります。ハック的な修正を思いついた

しかし、この問題が他のプラットフォームに存在するかどうかはわかりませんが、これは不十分で、おそらく移植可能ではないようです。何か案は?

0 投票する
3 に答える
9255 参照

c++ - QMainWindow を水平方向にのみサイズ変更可能にします。つまり、幅はサイズ変更可能ですが、高さは固定されています。

QMainWindow のグリッド レイアウトを水平方向のみにサイズ変更し、垂直方向にはサイズ変更できませんか?

すべてのボタン/ライン編集を保持するために必要な最小の垂直サイズにしたい。

0 投票する
1 に答える
1373 参照

qt - QMainWindow のより効率的な中央ウィジェット: QGLWidget VS QGraphicsView

アプリに QMainWindow を使用しており、openGL レンダリングを実行したいと考えています。2 つのアプローチ:

1) 中央ウィジェットとして QGLWidget を設定し、そこですべてのレンダリングを行います。

また

2) 中央ウィジェットとして QGraphicsView を設定し、ビューポートを QGLWidget に設定して、レンダリング コンテキストを作成し、シーンでレンダリングを行います。

効率的に考えるとどっちがいい?(前者の場合は (子ウィジェットとして) QGLWidgets になり、後者の場合は QGaphicsItems になるいくつかの他のオブジェクトを後で追加します)

0 投票する
1 に答える
1371 参照

c++ - Qt WindowMaximize がジオメトリを変更しない (C++)

だから私は私の最初の Qt プロジェクト (驚き!) として web ブラウザーを作成していsetWindowState(Qt::WindowMaximized)ます。私はこのコードを持っています:

mainwindow.h から:

mainwindow.cpp から:

お気づきかもしれませんが、ウィンドウを最大化し、QWebView も最大化した状態でアプリケーションを起動しようとしています。基本的に、メイン ウィンドウのサイズが変更されるたびに、ui->webView->setGeometry高さと幅を更新して呼び出すことも必要です。しかしMainWindow::geometry、更新されていないようです。私は何を間違っていますか?

0 投票する
2 に答える
2570 参照

python - すべての DockWidgets を削除した後に QMainWindow のサイズを変更する方法は?

で構成されるアプリケーションを作成しようとしていますQMainWindow。その中央のウィジェットはQToolBar(通常ではないかもしれませんが、私の目的にはツールバーが適しています)。ドックは下のみ許可されます。それに を追加しQDockWidget、 の と でQActionオンとオフをQToolBar切り替えます。QDockWidgetremoveDockWidget()restoreDockWidget()

のデフォルト サイズQMainWindowは 800 x 24 で、も 24 に設定されています。が呼び出された直後に、のジオメトリはwith に戻されます。QToolBarmaximumHeightremoveDockWidget()QMainWindow(0,0,800,24)setGeometry()

私が達成したいのは、 が削除されQMainWindowたときに の高さを 24 にサイズ変更することです。DockWidget幅と位置がそれに応じて変化するため、機能しているsetGeometry()ように見えますが、おかしなことに、高さは変わりません。そして、それは本当に私の問題です:)

どう思う?

これは、当面の問題を示すスクリーンキャストです。

注意: QMainWindow ではなく QWidget を使用して同じシナリオを作成し、子ウィジェットでshow()orを使用すると、問題なくhide()親のサイズを変更できadjustSize()ます: 上記の問題は QMainWindow 固有のようです。