問題タブ [qwidget]
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.
c++ - Qt - ウィンドウにレイアウト マネージャーをインストールする
このC++ GUI Programming with QT
本では、次のことについて言及していQWidget::setLayout()
ます。呼び出されると、ウィンドウにレイアウトマネージャーをインストールします。
どういう意味ですか?
ありがとう。
qt - QPushButtonをプロモートされたQWidgetに接続するにはどうすればよいですか?
カスタムウィジェットを含むQWidgetコンテナがあります。このQWidgetコンテナは、私が作成したカスタムウィジェットに昇格しました。MainWindow.uiにQPushButtonがあります。このQPushButtonをプロモートされたQWidgetに接続したいと思います。どうすればいいですか?
たとえば、プロモートされたQWidgetクラスに関数があり、MainWindow.uiにあるQPushButtonをクリックしたときにこの関数を呼び出したいと考えています。
前もって感謝します!
qt - スタイルシートの疑似状態値に基づいてカスタムQWidgetをペイントする
独自のを実装する必要があるカスタムQWidget
(実際には、から派生)があります。スタイルシート情報の使い方は?QAbstractButton
paintEvent
たとえば、誰かが私のカスタムクラスに(直接または継承を介して)適用する次のスタイルシートを定義するとします。
私のpaintEvent
方法では、チェックされた状態で表示される正しい背景色を取得するにはどうすればよいですか?
私は次のようなことをしなければならないと思います:
Qtがスタイルシートから解決したチェック状態の背景にブラシを使用するにはどうすればよいですか?
qt - ユーザー定義クラスのコンストラクターの引数としての QWidget *parent
私の前のスレッドで、ここの人々は私に、すべてのウィジェットは削除の場合に役立つ親を持っていると言っていました。つまり、親が削除されると、子は自動的に /dev/null にスローされます。
ここで、QWidget *parentがユーザー定義クラスのコンストラクターに渡されていることがわかります 。
これは何を示していますか?
qt - qtでシグナルを生成したウィジェットを非表示にするにはどうすればよいですか
複数のウィジェットがあり、それらすべてにメイン メニュー ボタンがあるとします。そこで、すべてのメイン メニュー ボタンのクリック信号を 1 つのスロットに接続しました。
そして、私が持っています
mainClicked では、クリックされたシグナルをトリガーした人を非表示にしたいと考えています。上記の例では、frame1 または frame2 です。
senter() を使用してシグナルをトリガーした QObject を取得できますが、QWidget 関数である hide を呼び出すにはどうすればよいですか?
あなたの助けに感謝します。
c++ - Qt: 長方形ではない QWidget を重ねることはできますか?
長方形以外のカスタムQWidget
(例: 円形のボタン) が複数ある場合、それらを重ねることはできますか?
ウィジェットのどの部分が不透明であるかを Qt に知らせる方法がないように思われるため、マウス イベントは正しいものに配信されますQWidget
(Qt は、各ウィジェットがその境界矩形を占有していると想定しているようです)。
代わりにこれらのウィジェットをQGraphicsItem
s にする必要がありますか?
qt - Qtであるフォームから別のフォームにデータを渡す方法は?
Qtであるフォームから別のフォームにデータを渡すにはどうすればよいですか?
QWidgetProgect -> QtGuiApplication を作成しました。現在 2 つのフォームがあります。今、あるフォームから別のフォームにデータを渡したいと思っています。
どうすればそれを達成できますか?
ありがとう。
c++ - Qt: 子オブジェクトを親オブジェクトで構成できますか?
Qt では、コンポジションを介して親に子ウィジェットを埋め込むことができますか、それとも で作成する必要がありnew
ますか?
QObject
ドキュメントによると、親が破棄されると、から派生したオブジェクトは自動的に破棄されます。これdelete
は、上記の例ではクラッシュする への呼び出しを意味します。
以下を使用する必要がありますか?
編集
答えは非常に多様で、基本的に 3 つの可能性に要約できます。
- はい、構成は問題ありません。Qt は、オブジェクトがどのように割り当てられ、ヒープに割り当てられたオブジェクトのみを把握でき
delete
ます (これはどのように機能しますか?) - はい、構成は問題ありませんが、親を指定しないでください。そうしないと、親が
delete
オブジェクトを呼び出すためです (しかし、親のないウィジェットはトップレベル ウィンドウに変わりませんか?) - いいえ、ウィジェットは常にヒープを割り当てる必要があります。
どちらが正しいですか?
delegates - QStyledItemDelegateにオフセットがあるqwidget.render描画
アイコンモードのリストビューでカスタムウィジェットを要素として描画するためのデリゲートを作成しようとしています。多かれ少なかれ機能していますが、ウィジェットを適切な場所に描画できません。リストビューの原点ではなく、メインウィンドウの原点(0,0)を考慮して描画されているようです。ウィジェットを適切な場所にレンダリングするには、何を渡す必要がありますか?オフセットを渡すことができることはわかっています...メインウィンドウとリストビューの間のオフセットを計算するにはどうすればよいですか?
これは私のデリゲートのペイントメソッドです(QStyledItemDelegateから派生)
ありがとう
/ J
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 内に配置できます。