1 名前:デフォルトの名無しさん [2007/11/04(日) 15:41:46 ] 【次スレ案】 QtはTrollTechが作成したC++ベースのGUI toolkitで、 OS間の差異を意識せず開発できるように作られたライブラリ群です GUIだけではなく、ネットワーク、マルチスレッド、グラフィック(OpenGL)や 各種コンテナ、XMLパーサーなど豊富なライブラリを持ちます Win, Linux, Mac版があり、11月04日現在でQt4.3.2 有料版・無料版(Open Source Edition)とあり、無料版はGPL ■Trolltech trolltech.com/ ■ダウンロード trolltech.com/developer/downloads ■Qt ダウンロード trolltech.com/developer/downloads/qt/index ■Qt 4.3 リファレンスドキュメント (オープンソース版) doc.trolltech.com/4.3/ ■解説本・サイトなど trolltech.com/developer/books.html ssl.ohmsha.co.jp/cgi-bin/menu.cgi?ISBN=978-4-87311-344-9 www.sra.co.jp/qt/relation/index.html ■前スレ [KDE/Qt]Qtについての疑問を教えあうスレ 2 pc11.2ch.net/test/read.cgi/tech/1130300775/
508 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 17:04:17 ] LINUXへのQt(4.4.0)のインストール時、INSTALLファイルの記述に従って .configureを実行→gmakeを実行 とやっているのですが、gmakeの時点で以下のようなエラーが出てしまいます。 /usr/X11R6/lib64/libGL.a:could not read symbols: 不正な値です /usr/X11R6/lib64/libGL.aが無いのかと思いきや、存在しており、読み込み権も付いていました。 コンパイラはgcc 3.4.6です。 どなたか原因が分かる方おりませんでしょうか?
509 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 03:00:26 ] >>508 UNIXって具体的には?
510 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 03:02:05 ] >>509 あ、ごめんLinuxって書いてたのね。 読み間違いしてた。 64bitかー。うちはCentOS5で問題なかったと思うけど・・・ あとでビルドして確認してみようかな。
511 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 00:44:47 ] .configure
512 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:36:25 ] Qtに興味を持ってデモプログラムを落としてみたところなんですが、 Windows Vistaのピカピカしたメニューバーと、平坦な色遣いのツールバーが なんだかミスマッチです。 移植性を損なわずに、Vistaでの見た目を改善することは可能ですか?
513 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 14:21:26 ] 試しに QApplication::setStyle(new QWindowsVistaStyle); を追加してコンパイルしてみてはどうでしょうか。 移植性を考慮するなら、 #ifdef Q_WS_WIN if (/*Vistaで動作中なら*/) { QApplication::setStyle(new QWindowsVistaStyle); } #endif などと実装するといいと思います。 ちなみに、↓ですが QApplication::setStyle(new QWindowsVistaStyle); Macの環境ではコンパイルは通りますが、リンク時にエラーが出ました。
514 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 16:34:59 ] >>513 引数でスタイルの設定、できませんでしたっけ?
515 名前:512 mailto:sage [2008/09/14(日) 19:48:34 ] >>513-514 ありがとうございます。調べてみたところQWindowsVistaStyleはすでに適用されていて、 そのスタイル自体の配色(ツールバーの色)に違和感があったようです。 まあ、VistaではOS付属のワードパッド等も同様にダサいデザインになっていますので、 それこそがVistaスタイルなのだと言われればそうなのかもしれません。 で、さらに探してQtDotNetというものがあることに気づき、それを入れてみたところ、 Vista風ではありませんが(Office2003風)一応納得のいく見た目になりました。 最初に思ったよりもかなり融通の利く設計になっているようですね。
516 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 19:39:07 ] HPにQTをインストールしているのですが、.configureの後にgmakeを行うと、 src/corelibのコンパイルの所で cc: error 1400: Option t usage: -t c,name where c may be 1 or more of pc0al. というエラーが出てコンパイルが止まってしまいます。 Makefileを確認してみると、以下のように、 CCで-mtのオプションを付けてコンパイルをしようとしているのが原因のようでした。 CC = cc CFLAGS = -Ae +DAportable -w +O1 -D_POSIX_C_SOURCE=199506L -D_HPUX_SOURCE -mt +Z $(DEFINES) .obj/release-shared/q_ldcw.o: arch/parisc/q_ldcw.s $(CC) -c $(CFLAGS) $(INCPATH) -o .obj/release-shared/q_ldcw.o arch/parisc/q_ldcw.s これについて、解決策をご存知の方は居られませんでしょうか。
517 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 09:27:24 ] 土台となる親wigdetがresizeされても それが持つ、QHBoxLayoutでくくった子wigdetが横方向へは伸び縮みしない (Layoutが働いて均等に配置されるのみ) この場合で、子wigdetをできうる限り最大化させたい場合、 resizeEventに直接書き込むしかないんですか?
518 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 09:36:09 ] >>516 mkspecsの中にある、適切なディレクトリのqmake.conf を 書き換えてみてはどうでしょうか?
519 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 09:37:23 ] >>517 なんかプロパティがあった気がします。 (すみません、あやふやです。)
520 名前:デフォルトの名無しさん [2008/09/20(土) 05:38:44 ] qt designer の オープンソース windows版ってないの?
521 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 14:07:35 ] >>520 オープンソース(Windows)版のQtをビルドすると、binフォルダ内に designer.exeというファイル名で作成されてますよ。
522 名前:520 mailto:sage [2008/09/21(日) 06:18:27 ] >>521 ありがとう フレームワーク何にしようか迷ってたんだけど qtで決まりだね。
523 名前:520 mailto:sage [2008/09/21(日) 23:38:36 ] MingwとMSYSを落としてきてインストール。 qt オープンソース版を落としてきて、展開。 MSYSコマンドプロンプト上でQtのフォルダに移動。 ./configureとすると受け入れるライセンスの種類を聞かれたのでyを選択。 mingw32-makeが見つかりません。と言われて止まった。 MSYSやMinGWの中のフォルダみてもmingw32-makeがない。(パスは通ってる) どうすりゃいいの? あといろいろ調べてたら、visual studio 2005のコマンドプロンプトでconfigure しなくちゃいけないみたいなんだけど、msys上じゃだめなの?
524 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 23:53:51 ] >>523 MSYS上で、makeが実行できれば問題ないような気が…。 環境変数のQMAKESPECにwin32-gcc+を設定していないとか? あと、環境変数QTDIRに展開したフォルダパスを設定するのも多分必要。 普段VS2003(QMAKESPEC:win32-msvc2003)を使ってて、MSYS環境が ないので想像だけど。
525 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 23:54:03 ] >>523 mingw32-makeはtrolltechで配ってるmingwに入っている ttp://ftp.ntua.gr/pub/X11/Qt/qt/source/qt-win-opensource-4.4.2-mingw.exe MSYSでも不可能ではないがシンボリックリンクって知ってるか? Visual Studioは商用版だけの話だぞ
526 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 01:03:33 ] 素直にmingw抱き合わせ版使った方が幸せ
527 名前:523 mailto:sage [2008/09/22(月) 01:08:59 ] >>MSYSでも不可能ではないがシンボリックリンクって知ってるか 知ってます。 >>素直にmingw抱き合わせ版使った方が幸せ 抱き合わせ版はGDB使えないのでしょ?
528 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 02:41:34 ] >>527 知ってるならmingw32-makeのシンボリックリンクくらい張れるよな? なんでgdb使えないと思い込んでるのさ? -gオプション付けりゃCygwinのgdbでも何でも使えるぞ
529 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 03:14:14 ] >>527 オレはセットのやつにgdb追加して使ってるけど、 その情報源はどこなんだ? 久々に「知ってるがお前の態度が(AA略)」を出したくなった
530 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 06:36:07 ] ttp://d.hatena.ne.jp/nobu_kichi/20070726 これの赤字のところ。
531 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 09:33:25 ] gdbが使えない、という文面は見当たらん
532 名前:デフォルトの名無しさん mailto:sage [2008/09/22(月) 21:03:28 ] 無事インストールできました。皆さんありがとう
533 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 11:58:25 ] Qt4.4.1をSolarisへとインストールする際のコンパイルで、 float_tが見つからないと言われて以下のようなエラーとなってしまいます。 "../../../../src/3rdparty/clucene/src/CLucene/util/Equators.h", line 100: Error: Type name expected instead of "float_t". "../../../../src/3rdparty/clucene/src/CLucene/util/Equators.h", line 103: Error: float_t is not defined. OSはSolaris 8 コンパイラはSun Studio 9 Sun C++ 5.6 です。 /usr/includeの下などを探してみても、確かにfloat_tが見つかりません。 どなたか分かりませんか?
534 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 23:03:59 ] うちのnevadaはiso/math_c99.hでtypedefしてる
535 名前:デフォルトの名無しさん mailto:sage [2008/09/26(金) 01:20:29 ] Qt Designer4.3を使っているのですが、 DesignerではQVBoxLayoutなどのレイアウトオブジェクト名を変更することは出来ないのでしょうか。 ちょこちょこレイアウトをいじると、uicでヘッダファイルを出力した時に オブジェクト名がvboxLayout1になったりvboxLayout2になったりします。
536 名前:デフォルトの名無しさん [2008/09/26(金) 02:12:56 ] できないんじゃないかな。 なんでレイアウトの名前を変えたいの? 適当な名前で十分だと思うけど。
537 名前:デフォルトの名無しさん mailto:sage [2008/09/27(土) 00:09:10 ] qmake VERSION=staticlib で静的リンクさせようとすると、 windres -i hoge_resource.rc -o debug\hoge_resource_res.o --include-dir=. windres: hoge_resource.rc:8: syntax error と出ます(動的リンクだと問題なし) 具体的に他に何をすればいいんでしょうか ちなみにhoge_resource.rcの8行目は FILEVERSION staticlib,0,0,0 となってます 環境はWinで、Qt 4.4.1、gcc 3.4.2です
538 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 03:32:34 ] そもそも静的リンクってできるの?
539 名前:デフォルトの名無しさん [2008/10/01(水) 03:44:36 ] windowsでqtデザイナを使った.uiファイルをmakeをしようとすると undefined referrence to 'qMain(int, char**)' というエラーが出てmakeできません、どうしてなんでしょうか?
540 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 15:28:13 ] だって商業主義じゃないからね。 自分の好きなことやるのに普及してるとか儲かるとかは基本的に関係ないだろ。
541 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 15:44:14 ] 何のこっちゃ?
542 名前:デフォルトの名無しさん mailto:sage [2008/10/01(水) 16:22:38 ] あぁすまん誤爆だった。
543 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:12:36 ] TrolltechからQt Softwareになりました。
544 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 13:28:02 ] わかりやすくてよろしい
545 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 09:36:14 ] QTで作ったGUI上で QString::fromLocal8Bitを使用して日本語を表示させているのですが、 Windowsでは普通に表示されるものの、 LINUXでは文字化けになってしまい、上手く表示できません。 ファイルの文字コードをEUC-JPにしたりUTF8にしたりと 色々試したのですが、解決せず・・・ LINUXではどのようにして日本語を表示させるのでしょうか
546 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 12:07:05 ] Linuxでも同じだけど 該当部分のコードを晒せば何か分かるかも
547 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:18:31 ] コードはこんな感じです。 #define Jstr(str) QString::fromLocal8Bit(str) QString fStr = Jstr("ファイル");
548 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 13:59:04 ] それはパス名なの? >>545 を見るとファイルの中身の文字コードの話のようにも見えるし 実行環境のロケールは?
549 名前:デフォルトの名無しさん [2008/10/03(金) 14:45:33 ] >>538 ずっと前からできるよ。
550 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 15:47:27 ] LANGには"ja_JP.eucJP"を設定しています。 ソースコード内に日本語文字をべた書きで入れているので、 ファイルの文字コードをEUC-JPにしています。
551 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 16:32:57 ] QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForTr(codec); QTextCodec::setCodecForCStrings(codec); QLabel *label = new QLabel(tr("日本語"));
552 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 16:34:22 ] qDebug() << QString::fromLocal8Bit("日本語"); // 文字列はeucjp 端末上ではどう?
553 名前:545 mailto:sage [2008/10/03(金) 16:57:29 ] 回答ありがとうございます。 >>551 うーん・・・どうも上手くいきません。 >>552 やってみました。 端末上では、正常に日本語が表示されました。
554 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 17:25:01 ] 端末でOKならQtのフォントが正しく設定されてないんじゃない?
555 名前:545 mailto:sage [2008/10/03(金) 17:45:00 ] >>554 Qtのフォント設定というと、qtconfigで設定するのでしょうか? この辺りは何も触っていないままで・・・。 Qt ConfigurationのFontsタブを見たところ、 Family:Helvetica Style:Normal となっていました。 この設定を変更するのでしょうか。
556 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:11:55 ] >>555 ソースをUTF-8で書いてQString::fromUtf8()を使うとどうなりますか?
557 名前:545 mailto:sage [2008/10/06(月) 09:24:56 ] >>556 だいぶ間が開いてしまいました。 UTF-8を使用しても同じような現象になってしまいます。
558 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 10:02:13 ] まず他のQtアプリで日本語が正常に扱えるか試してみては
559 名前:545 mailto:sage [2008/10/06(月) 10:13:17 ] >>558 なるほど…。 早速試してみました。 QtDesignerを起動してみたところ、 ダイアログ名の「アクションエディタ」「オブジェクトインスペクタ」などの日本語は 正常に表示されていました…が、 QtDesignerのメニューが(F)、(E)、(O)、(T)、(W)、(H)とだけ出ていて、 "ファイル"、"編集"などの文字が表示されていませんでした。 メニューツリーの下も、日本語の表示が出ていません。
560 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 10:50:54 ] 標準エラー出力に何か出てない?
561 名前:545 mailto:sage [2008/10/06(月) 10:57:13 ] エラーは何も出ていませんでした。 何か環境設定が足りない、間違っているとか、 そういうことでしょうかね…これは。
562 名前:545 mailto:sage [2008/10/06(月) 18:37:03 ] 解決しました! 結局、>>554 で指摘していただいた、フォントの問題でした。 デフォルトで日本語が無いフォントになっていたようで・・・ フォントを他のものに変更したら、日本語が表示されました。 回答頂いた方々、ご親切にありがとうございました。
563 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 09:07:44 ] Visual studio 2008 express edition でQt4.4.3のコンパイルをしていたのですが、 condigureとすると、途中で、ファイル又はディレクトリがありません(make) と2回表示されて止まってしまうのですが、 これはmakeの場所が分からないってことですか? 生ソース版でvisual C++で使うつもりでも mingw入れてパス通さないといけないのでしょうか?
564 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 09:50:17 ] 入れる必要ないよ、VSのコンパイラへのパスを通してやればOK、 VS2005の時のインストール方法が下記にあるから、 ttp://www.02.246.ne.jp/~torutk/cxx/qt/QtOnWindowsAndVisualStudio.html これと、qtフォルダのREADMEファイルを見ながら2008用の設定へ 変更すればいけると思う、変更といってもwin32-msvc2005を win32-msvc2008に変えるだけでいけると思うけども。
565 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 10:38:27 ] visual studio のコマンドプロンプトを使うとうまくいきました。 ありがとうございます。
566 名前:デフォルトの名無しさん [2008/10/12(日) 23:44:51 ] QtデザイナのBuddyエディタってなにができるんですか?
567 名前:デフォルトの名無しさん [2008/10/12(日) 23:48:19 ] フォーカスコントロールに対しての、シグナル&スロットを勝手に実装してくれて、 ラベルのショートカットと、オブジェクトへのフォーカスを結びつけてくれるっていうことでいいですかね
568 名前:デフォルトの名無しさん [2008/10/13(月) 09:29:57 ] uicの使い方がわかりません。 マニュアル qt.linux-life.net/4/doc/ja/uic.html を読んでみたんですが、それだとヘッダファイルしか生成されない模様です。 www.kde.gr.jp/pukiwiki/index.php?Qt%A5%C7%A5%B6%A5%A4%A5%CA%A1%BC%A4%CE%BB%C8%A4%A4%CA%FD のように、cppファイルも生成されるかどうか、わかりますか。 バージョンが新しくなって仕様が変わったんでしょうか
569 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 10:13:53 ] >>568 > バージョンが新しくなって仕様が変わったんでしょうか まさにそうです、そのサイトのはQt3の時の作成方法、 Qt4からは GUIのプロパティだけを保持する ui_(uiファイル名).h が作成されるので、 foo.h と foo.cpp を自分で作り、 class Foo : public QDialog { Q_OBJECT public: Foo(QWidget *parent = 0); private: Ui::uiファイルのクラス名 ui; // ※↑は作成された ui_(uiファイル名).h 内を見て下さい }; ってなクラスを作って、コンストラクタで Foo::Foo(QWidget *parent) : QDialog(parent) { ui.setupUi(this); } ってやればOK、 空のQDialog継承クラスへ、GUIプロパティ保持した ui から値を吸い出すようなイメージ。
570 名前:デフォルトの名無しさん [2008/10/13(月) 10:14:51 ] >568 説明足りないので付け足しますと、生成されるヘッダに関数内部が直書きされてしまうのですが、勝手にソースファイルに分けてくれないのでしょうか
571 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 10:45:51 ] uicだと出来ないみたい、 分けるとしたら手動でやるくらいかな。
572 名前:デフォルトの名無しさん [2008/10/13(月) 11:07:03 ] >569 >571 親切な、回答ありがとうございました。 QTデザイナとuicなど、かなりいいところまで自動化できてると思うのですが、 もう少し自動化してほしいですね。 >569のクラス作成と、初期化などがデフォルトで行われないのは、どのクラスで作るかをユーザーで決めたほうが良いから、ということでしょうか。
573 名前:デフォルトの名無しさん [2008/10/13(月) 11:10:25 ] QTデザイナで、格上げしたクラスを使ったとき、新規クラスのヘッダファイルを自動的に作ってくれるととても便利なんですけどね。 あと、自前のオブジェクトもデザイナ上で扱いたいですね。
574 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 16:59:59 ] >>572 >>186-188 どうやら、Qt Designerの機能をシンプルにした結果みたいですね。
575 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 01:47:48 ] Qtのもっといい解説サイトって無いんでしょうか?
576 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 03:19:26 ] 公式こそ至高
577 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 03:58:13 ] どうせ、もっといい=日本語 だろうけど、せいぜい本ぐらい。当然質は落ちる。
578 名前:デフォルトの名無しさん mailto:sage [2008/10/15(水) 12:07:41 ] Qt Designer の使いかたの tutorial が英語でもあまり良いの 見つからなくて俺も苦労した覚えある。 ガシガシ書くなら公式サイトは良いけど、Qt Designer フルに使って コードをちょっと書くみたいな tutorial 無かった記憶ある。 本は Molkentin, Blanchette/Summerfield 目通してなんとなく判ってきたけど。
579 名前:デフォルトの名無しさん [2008/10/16(木) 22:34:36 ] どなたかQPixmapの使い方を教えてください。 画像のデータ配列をuchar *で与えて、QPixmapにしたいと思い、 bool QPixmap::loadFromData ( const uchar * data, uint len, const char * format = 0, Qt::ImageConversionFlags flags = Qt::AutoColor ) を使おうと思っています。 formatパラメータが意味不明なので、とりあえず無視していれてみると、falseがかえってきた、ロードされません。 これは、画像ヘッダも含んだデータを渡せっていうことですか? 使い方を知っている方がいましたら教えてください。
580 名前:デフォルトの名無しさん [2008/10/16(木) 22:39:25 ] >>579 のものです そもそも画像の表示を高速におこない要望があります。 QImageよりQPixmapのほうが表示用のクラスっぽいので、QPixmapを試みています。 QPainterクラスの、drawImageよりもdrawPixmapのほうが速いってことになりますがそんなことってあるのでしょうか
581 名前:デフォルトの名無しさん [2008/10/17(金) 08:57:23 ] >>574 ありがとうございます。 昔は、mainファイルも作ってくれていたんですね。 格上げクラスのヘッダファイルを自動生成してほしい・・・。
582 名前:デフォルトの名無しさん mailto:sage [2008/10/17(金) 21:40:07 ] どの程度役に立つかはわからんが、eclipse の Qt plugin があるよ。 結構いろいろファイル作ってくれる。俺の環境ではちゃんと動かないものもあったが。
583 名前:デフォルトの名無しさん [2008/10/17(金) 22:34:45 ] >>582 ご親切に、情報ありがとうございます。試してみます!! c/c++の開発環境としては、VS/VCよりeclipseの方が親切ですよね。
584 名前:デフォルトの名無しさん [2008/10/19(日) 11:57:11 ] >>580 リファレンスマニュアルから引用すると、、、 QPixmapは描画に適するように、QImageはピクセル操作に適するようにデザインされている。
585 名前:デフォルトの名無しさん [2008/10/19(日) 12:00:01 ] >>57 e >あと、自前のオブジェクトもデザイナ上で扱いたいですね。 Designer Plugin にすれば自前のウィジェットもデザイナで使えるよ。
586 名前:デフォルトの名無しさん [2008/10/19(日) 12:04:45 ] >>579 loadFromDataはメモリー上に読込んだ画像ファイルをヘッダーを含めて頭から渡します。 formatは画像の種類で、指定しなければヘッダーから推測されるよ。
587 名前:デフォルトの名無しさん [2008/10/19(日) 13:55:34 ] >>584 >>585 >>586 ありがとうございます。 >>584 >>586 QImageやQPixmapは対応しているファイルが不十分なので、他のライブラリでロードしたデータを描画用にセットしたいのです。 そこで、QPixmapクラスのloadFromDataや、fromImageを検討していました。 用途から言うと、loadFromDataはやっぱりダメだっていうことですね。 fromImageは使い方検討中です。 1. 他のライブラリで画像データを取得 2. QImageに付け替え 3. QPixmapに付け替え てな感じになるんですかね。 QImageとQPixmapについては、その後よく調べてみたら、QPixmapの方がQImageより速いというわけではなく、オーバーレイやスケーリングして表示するなどのメソッドがはじめから用意されているので便利だよ、という意味みたいですね。 スケーリングはともかく、描画はどちらにしろQPainterクラスで書くことになるのでほとんど、変わらない気が・・・。 なので、ほとんどの場合は、QPixmapでなくQImageで十分な印象を受けました。 >>585 Designer Plugin!ありがとうございます。 もうちょっと調べてみます。 わからなかったら質問するかもしれませんが、ご容赦ください。 Qt Designerのはくコードは、非常に汚く、無駄が多いですが、やっぱり楽ですもんね。
588 名前:デフォルトの名無しさん [2008/10/19(日) 14:03:21 ] >>585 Designers Pluginとは、Eclipseのプラグインのことでしょうか?
589 名前:デフォルトの名無しさん [2008/10/19(日) 21:50:09 ] >>587 > QImageやQPixmapは対応しているファイルが不十分なので 他のライブラリで読んだデータを QImage にピクセル単位で埋込めばいいです。 > QPixmapでなくQImageで十分な印象を受けました QPixmap と QImage のデータがどこにあるかを考えると、普通は QImageで ピクセル処理をして、できあがったら QPixmap にして描画に使うようにします。
590 名前:デフォルトの名無しさん [2008/10/19(日) 21:53:11 ] >>588 自前のオブジェクトというのは自前のウィジェットということならば、 それを Designer で他のウィジェットと同じように使えるようにする Plugin のことです。
591 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:50:17 ] こんなニュースが ttp://journal.mycom.co.jp/articles/2008/10/23/qt/index.html 開発陣、創業者は全員残るみたいだけど、今後どうなるんだろ。
592 名前:デフォルトの名無しさん mailto:sage [2008/10/23(木) 10:52:33 ] ってえらい過去の事だ、忘れてください。
593 名前:デフォルトの名無しさん [2008/10/26(日) 11:34:14 ] >>587 Windowsでならたいして違いはないけど、Xの場合は QImageだと圧倒的にQPixmapより描画速度が遅いよ。 クロスプラットホームを考えるなら、やっぱりQPixmap 使ったほうがいいと思う。 ただ、QPixmap だとスレッド内で描画できないって 制限があるけど。
594 名前:デフォルトの名無しさん [2008/10/26(日) 13:48:27 ] >>589 ,593 ありがとうございます。 QPixmapの方がはやいのですね。データ構造が違うのだろうか、うーむ。 QImageからQPixmapへの変換がようやくできました。 QImage img;(データロード済み) QPixmap pixmap; があったときに、pixmap.fromImage(img)としていてうまくいってなかったのですが、 pixmap = QPixmap::fromImage(img)としたらできました。 後者の用法がよくわからないのですが、どなたか教えていただけますか。
595 名前:デフォルトの名無しさん [2008/10/26(日) 13:51:30 ] あと、キーボードフォーカスがよくわからないのでどなたか教えてください。 QMainWindow内に配置された,QWidgetでkeyPressEventをしたいのです。 setFocusPolicy( Qt::StrongFocus ); raise(); activateWindow(); などを試してみましたが、キーボードフォーカスになりません。 ですが、別のマウスイベントが起こったフォーカスがうつるようで、キーボード入力が受け付けられます。 どうしたらよいのでしょうか。
596 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:02:20 ] >>594 QString s = QString::fromUtf8("あいうえお");と同じ これも意味分からないならC++の知識が不足している >>595 フォーカスはウィジェットごとに持っているんで ウィジェットにフォーカス渡さなきゃだめでしょ QWidget *w;としてw->focus();
597 名前:デフォルトの名無しさん [2008/10/26(日) 14:10:57 ] >>596 ありがとうございます >QString s = QString::fromUtf8("あいうえお");と同じ >これも意味分からないならC++の知識が不足している すいません。まったくわかりません^^; どういう単語で勉強すればいいでしょうか。 名前空間ですか? >ウィジェットにフォーカス渡さなきゃだめでしょ >QWidget *w;としてw->focus(); ありがとうございます。やってみます!
598 名前:デフォルトの名無しさん [2008/10/26(日) 14:15:41 ] >>596 setFocus()メソッドも試したつもりでしたが、改めてやってみたらできました。 ありがとうございます。
599 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 14:29:40 ] >>597 staticメンバ
600 名前:デフォルトの名無しさん [2008/10/26(日) 15:14:05 ] >>599 ありがとうございます。 勉強しました。オブジェクトでなくて、クラスに属する関数や変数が作れるんですね。 呼び出しの仕方も知りませんでした。 マニュアルにfromImageメソッドは、staticと書いてませんでしたが、ソースを見たらstatic宣言になっていました。 問題は全て解決しました!!みなさま、ありがとうございました。
601 名前:デフォルトの名無しさん mailto:sage [2008/10/26(日) 16:58:33 ] >>600 お、飲み込み早いじゃん。なかなか筋が良いね。
602 名前:デフォルトの名無しさん [2008/11/01(土) 20:19:08 ] Qt、クロスプラットフォームIDE「Qt Creator」技術プレビュー版をリリース sourceforge.jp/magazine/08/10/31/0332249
603 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 11:25:26 ] Qt4.5とQt Createrってどこで手に入るの?
604 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 11:58:36 ] >>603 ttp://trolltech.com/developer/qt-creator 正式リリースではないので注意。
605 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 13:30:34 ] MinGW版しかないのね。 ところで ボタンのプログラム作ってるんですが、 ボタンの字の表示を漢字にすると文字化けします。 対処法はありますか? 「quit」だと問題なし。「終了」だと文字化けします。
606 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 14:02:11 ] #include<QApplication> #include<QFont> #include<QPushButton> int main(int argc,char **argv) { QApplication app(argc,argv); QPushButton button("終了"); button.resize(100,100); button.setFont(QFont("MS Gothic",18)); QObject::connect(&button,SIGNAL(clicked()),&app,SLOT(quit())); button.show(); return app.exec(); } ソースはこれです。
607 名前:デフォルトの名無しさん [2008/11/02(日) 14:03:59 ] >>605 QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); "終了" --> QObject::tr("終了") 俺はこれで行けたが。
608 名前:デフォルトの名無しさん mailto:sage [2008/11/02(日) 21:44:06 ] newしていつか別の部分でdeleteする時のために、ポインタをかき集める奴を QList<QObject *> qList; として作って、ひたすらappendしていく形を 思いついたのですが、あんまり頭が良くない気がします。 何か他に良い案はないんでしょうか?