問題タブ [pyqt4]

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 投票する
3 に答える
3609 参照

algorithm - PyQt4QDialog-フィールドを空白にしないでください

OK、これは私を狂わせています。些細なことだと思いますが、しばらく答えを探していたのですが、わかりません。額は平らになると思います。

PythonでQt4ダイアログを設計しています。QDesignerを介してコードを生成し、システムに4つの入力があります。

  • QLineEdit(空白にすることはできません)
  • QPlainTextEdit
  • QLineEdit(空白にすることはできません)
  • QComboBox(オプションの1つを選択する必要があります)

質問:フィールドを「必須」にするフラグはありますか?強制的に非空白にしますか?

QRegExpValidatorを使用しようとしましたが、これが正しいかどうかわかりません。

明らかな何かが欠けていることはわかっています(self.optionName.setRequired()関数にしないでください)。

アップデート

このクラスを追加しました:

このように呼んでください:

クラスのvalidate()関数にブレークポイントが設定されていますが、それが呼び出されることはありません。

私は何か基本的なものが欠けていますか?

TIA

マイク

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

python - PyQt コンテキスト メニュー

contextmenu を QTableWidget に動的に追加しています:

currentItem.text() は、db からフェッチされるプレイリスト名です。1 つの関数 (addToPlaylistAction) だけが異なるアクションからすべてのトリガーを受け取ることがわかります。addToPlaylistAction 関数で、どのメニューがクリックされたかを判断するにはどうすればよいですか?

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

python - PyQt:ウィンドウ上にQTextEditsを表示する

メインウィンドウの任意の場所にQTextEditを表示したい。以下は私の最初の試みです。うまくいきません。ウィンドウを表示する前にテキスト編集を作成すると、テキスト編集は表示されますが、ウィンドウを表示した後にテキスト編集を作成すると、テキスト編集は表示されません。どうしたの?後で作成したものを表示するにはどうすればよいですか?

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

python - Python/PyQT QString が MySQL データベースに挿入されない

QLineEdit ウィジェットを使用して、ユーザーからいくつかの値を取得しようとしています。QPushButton がクリック イベントを発生させたときに、すべての QLineEdit ウィジェットからテキストを取得し、ローカルの MySQL データベースに保存する必要があります。ただし、挿入ステートメントで文字列置換を使用しようとすると、値が置換されません。ここに私のSQL文があります:

self.edi_xxx 変数はすべて QLineEdit ウィジェットです。ボタンが押されると、以下が起動されます。

submit が行うことは、データベース オブジェクトを作成し、値をデータベースに書き込むことだけです。ただし、デバッグのために、構築された SQL ステートメントを出力すると、INSERT INTO jobs (incident_id, organization, organization_poc, media_type) VALUES ("", "", "", "") が出力されます。

また、str() 関数を使用して QString を文字列に変換しようとしましたが、同じことが起こります。

どんな助けでも大歓迎です:)?

L

編集:インポートを除いた完全なコードは次のとおりです。

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

sqlite - py2exe を使用する場合、PyQt アプリケーションは SQlite データベースを読み込めません

私の PyQt アプリケーションは、Linux で実行している場合、Windows ビルド環境で実行している場合、または py2exe でビルドされたマシンでフリーズしている場合に正常に動作します。しかし、凍結された実行可能ファイルとそのサポート ファイルを別のマシンに移動すると、データベース ドライバをロードできなくなります。

私が Python2.5 と以前のバージョンの PyQt と py2exe を持っていたとき、それはうまくいきました。しかし、ツールチェーンをアップグレードした後、次のエラーが発生します。

  • dbname.open が false を返す
  • lastError(dbname) は「ドライバーがロードされていません」

qsqlite4.dll を置く sqldrivers フォルダーがあります。これは以前のビルド環境で必要でしたが、その DLL を移動または名前変更しても動作は変わりません。それは Qt が見つけられない DLL だと思いますが、Qt にどこを見ればよいかを伝えることができませんでした。

現在、これらのバージョンを実行しています:

  • python-2.6.3
  • PyQt-Py2.6-gpl-4.6-1
  • py2exe-0.6.9.win32-py2.6

Dependency Walker でプロファイリングすると、次のエラーが表示されます:
LoadLibraryW("\application\sqldrivers\qsqlite4.dll") が NULL を返しました。エラー: アプリケーションの構成が正しくないため、このアプリケーションを開始できませんでした。アプリケーションを再インストールすると、この問題が解決する場合があります (14001)。
Dependency Walker に Qsqlite4.dll の詳細を尋ねると、
エラー: "\application\sqldrivers\QSQLITE4.DLL" の Side-by-Side 構成情報にエラーが含まれています。

これで DLL が読み込まれない理由が説明できますが、修正方法はまだわかりません。よく調べてみると、私が呼び出したほとんどの DLL でそのエラーが表示されます。ロードする Qt DLL ごとにマニフェストを含める必要がありますか?

前もって感謝します。

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

pyqt - Python 3 および PyQt 4 の推奨事項

Python 3PyQt 4の組み合わせは推奨されますか? 代替手段はありますか?

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

user-interface - QTableWidget内のVerticalHeaderItemでコンテキストメニューを有効にする方法は?

設定したQTableウィジェットがあります

コンテキストメニューを設定しました

そして、1列目以外のテーブルの要素、つまりVerticalHeaderItemでうまく機能します。基本的に、最初の列の項目を右クリックしてもコンテキスト メニューはポップアップしませんが、他の要素をクリックすると、最初の列をクリックするとコンテキスト メニューがポップアップします (定義した QActions が表示されますが、明確にするためにここには表示されません)。 .

最初の (VerticalHeaderItem) 列を右クリックに反応させるために設定する必要がある属性はありますか? Qt.ItemFlags かな?もしそうなら、それを適切に設定する方法を誰かがコードスニペットを書くことができますか? できれば Python ですが、C++ でも問題ありません。

私のconf:Windows XP SP2でのQT 4.5.2、PyQT 4.5.4。

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

pyqt4 - PyQt4信号とスロット

私はまだPythonとPyQt4を学んでいますが、[Harvest]ボタンを押してもGUIウィンドウに何も表示されないようです。信号とスロットに関する知識の欠如を太字で強調しました。

更新されたコード:

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

python - PyQt: QPlainTextEdit での変更時のアスタリスクに関する問題

QPlainTextEdit に問題があります。コンテンツが変更されるたびに、「コンテンツが変更されました」というアスタリスクがタイトル バーに表示されるようにします。

以下の例では、いくつかの文字を入力します。アスタリスクが表示されます。Ctrl+S を押すと、アスタリスクが消えます。しかし、さらに数文字入力すると... アスタリスクが再び表示されないのはなぜですか?