[KDE/Qt]Qtについての ..
418:415
06/10/04 18:55:43
自己解決です。
-lQtCore -lQtGuiと書いていたのがまずかったです。
-lQtGui -lQtCoreでできました。
「依存されるライブラリは後に書く」
ということですね。
419:デフォルトの名無しさん
06/10/04 19:13:30
4.2リリース!
420:デフォルトの名無しさん
06/10/05 09:52:19
Qtのコンフィグでfreetypeの項目がありますが、
これをnoにするとTrueTypeのフォントが使えなくなるのでしょうか?
421:デフォルトの名無しさん
06/10/06 11:18:09
Qt4.1.4を使っているのですが、
X11にインストールされているすべてのフォントがQFontDialogやQFontDatabaseでリストされません。
調べてみたところ、TrueTypeのもののみリストされ、pcf形式のフォントが出ないようです。
Qt3のアプリケーションだと、すべてのフォントが出てきます。
どなたか原因の分かる方いましたら、教えてください。
422:421
06/10/06 14:43:41
どうやらQtではなく、fontconfigの問題っぽいです。
fontconfigのfc-listでリストしてみても、pcfのフォントが出ません。
ちなみにQtのconfigureのオプションでfontconfigをnoにしたら
「浮動小数点例外です」で、QApplicationのコンストラクタがこけます。
423:QuickTime?
06/10/15 02:01:06
良スレに出会ってしまいました.2chには初カキコです.
Qt 4.2をMac OSxでコンパイル中ですが,makeが6時間しても止まりません.
これって普通でしょうか?
(4.2用のスレが既に立ってたりして,板違いならご指摘ください.)
424:QuickTime?
06/10/15 02:25:55
すみません.やっと終わりました.
ただいまmake install中です.
なんちゅうこっちゃ.
425:デフォルトの名無しさん
06/10/15 04:21:25
コンパイルは結構時間がかかる。IntelMac miniで2〜3時間くらい。
PowerBook 12inchだと眠る前にmakeして朝起きたら終わっている、くらい。
426:QuickTime?
06/10/15 09:07:22
たしかにそれ
> くらい
でした.
427:デフォルトの名無しさん
06/10/16 15:10:20
macもたぶん同じだと思うけど、
linuxの場合-release をやればデバッグ用のオブジェクトはコンパイルされなくなるから、
コンパイル時間が約半分になるよ。
あとexamplesとdemosのディレクトリは消してもいい。これで大幅に時間が短縮できる。
基本的にlibディレクトリのlibQtCore.so(又は.a)とlibQtGui.so/aができてれば
途中でストップさせてもインストールできる。
ちなみに俺の環境はPentiumIIIの800だけど、これだけなら40分で終わった
428:QuickTime?
06/10/17 07:36:37
なるほどなるほど.
しかしexamplesとdemosの充実は凄いので,
初心者の人は使った方がよいと思われます.
ちなみに私はiBookです.
429:デフォルトの名無しさん
06/10/17 15:59:14
しかし、Mac版でqmakeするとMakefileにソースツリー内のライブラリと
フレームワークディレクトリへのパスが追加されるのはやめてもらいたい。
まぁ、フレームワーク内にある.prlファイルを編集すれば良い話なんだが。
誰も疑問に思わないのか?
430:デフォルトの名無しさん
06/10/17 21:58:25
どうして?
431:QuickTime?
06/10/17 23:46:15
ダウンロードしたフォルダごと,ソースファイルを消したらコンパイラが文句を言ってきました.
> フレームワーク内にある.prlファイルを編集すれば良い話なんだが。
該当パスが入っている行を消せば良いのでしょうか?
それとも本当に必要なファイルだったのでしょうか?
432:デフォルトの名無しさん
06/10/18 04:53:14
>>430
すまん、説明が足りなかった。問題なのは、Qtのソースツリー内の
libディレクトリが-Lや-Fで設定されること。これは意味ないと
思うんだが。
>>431
各.framework内の.prlファイルを編集して、-L /path/to/src/tree/lib
および -F /path/to/src/tree/lib を削除すれば、コンパイル時に文句を
言われなくなる。
433:QuickTime?
06/10/18 06:12:38
>>432
おー.できました.なるほどなるほど.
434:デフォルトの名無しさん
06/10/18 16:35:47
なぁ、QTDIR 以下のディレクトリって qmake 的には特殊なのか?
QTDIR/example/tutorial/t1 にて
qmake -project
qmake
make
と実行しても
qmake -o Makefile t1.pro
qmake -o Makefile t1.pro
qmake -o Makefile t1.pro
...
C-cするまで延々と繰り返される状態なんだが...
他のディレクトリに移してから make すると正常にビルドが終わるんだ
両方の Makefile を見比べてみたら全然違う
危うくチュートリアルすら終わらせられずに挫折するところだったんだぞ
435:デフォルトの名無しさん
06/10/19 04:06:34
>>434
exampleなんかは.proファイルがあるんだから、最初のqmake -project
は必要ない。
436:デフォルトの名無しさん
06/10/19 06:08:28
>>435
要らないにしても、元からある .pro ファイルから qmake で Makefile を作って make しても
あるいはそれも飛ばして元からある Makefile で makeしても
やっぱり同じで qmake -o Makefile t1.pro ...の繰り返しだよ
チュートリアルの練習問題を解こうとしてハマった
437:デフォルトの名無しさん
06/10/19 07:37:17
Qt4の採用が全然増えないのはなぜ?
最新のLinuxのディストリビューションでQt4を標準パッケージとして
入れているものが皆無なんですけど。
438:デフォルトの名無しさん
06/10/19 08:34:15
そらQt4ベースのKDEが出来てないからでそ
まだまだQt3ベース全盛
439:デフォルトの名無しさん
06/10/19 14:11:27
>>436
少なくとも、Mac版のQt4.2.0では問題無くビルドできるから、
環境依存の話だな。
440:デフォルトの名無しさん
06/10/19 23:25:01
単にデバッグ用のバイナリがないだけなきがす
441:デフォルトの名無しさん
06/10/19 23:53:42
>>436
Windows XP、SUSE Linux 10.0、MacOS X上で試したが、普通にコンパイル出来た。
Qtそのものをmakeし直してみては?
442:436
06/10/20 11:24:56
結論から言うと path を通すときに Qt のパスを MSYS より先に定義したら
QTDIR 以下のディレクトリでも正常にビルドできるようになった
Qt のパスには make.bat が置いてあって、中身は mingw32-make (make 3.80) を呼んでいた
一方 MSYS のパスには make 3.79 が入っていた...
環境依存にもほどがあるよな orz
お前らどうもありがとう
443:デフォルトの名無しさん
06/10/20 23:31:05
なぜQtは、関数名の最初が小文字なのでしょうか?JAVAを参考にしてるのでしょうか?
しかしプロパティアクセスでgetを省略してますね。setはあるのに。
あとなぜクラス名の最初にQをつけるのでしょう?
そんなのをつけるぐらいなら、名前空間使えばいいでしょうに。
それから、Qt4は、どうしてQt2/3とソースコードに互換性を持たせなかったんでしょう?
Qt2が出たのは1999年です。それからQt3の最終バージョンが出るまで6年。
この6年間で蓄積されたQtアプリケーションの資産は膨大です。
それをすべて捨てなければ得られなかったものがQt4にはありますか?
結局Qtを使う人々は、トロルテック社に踊らされてるにすぎないのです。
オープンソースとは、もっと自由であるべきです。ボランティア精神によって成り立つべきです。
企業に束縛されているQtに本当の自由はありません。
さあ今こそQtを捨て、本当の自由を手に入れましょう!
444:デフォルトの名無しさん
06/10/21 01:15:28
( ´`ω´)シシシ
(つ444⊂
445:デフォルトの名無しさん
06/10/21 03:07:14
>>443
オープンソースとフリーソフトウェアは全く違う概念だから、出発点からして間違っている。
煽るにしても、も少し勉強してた方が良いよ。
446:デフォルトの名無しさん
06/10/21 10:48:07
>>443
> それをすべて捨てなければ得られなかったものがQt4にはありますか?
Trollの中の人はそう考えてるぞ。
確かに今更感はなきにしもあらずだけれども、滅びていくよりは良いとおもう。
なにもQt3が明日から使えなくなる、というわけではない。
447:デフォルトの名無しさん
06/10/23 00:01:37
URLリンク(blogs.qtdeveloper.net)
↑を試してみたのですが、HTMLのソースが表示されてしまいました。
448:デフォルトの名無しさん
06/10/23 23:47:16
Qt3ってまだメンテナンス行われてるんですね。Qt3.3.7が出てますよ。
まあKDE3がメンテされてるから当然かもしれませんが。
449:447
06/10/24 02:50:25
Xcode 環境設定→ファイルタイプで、
file→text→text.htmlをHTML Fileに設定したらうまくいった!
450:デフォルトの名無しさん
06/10/25 06:28:32
Qtのライブラリをできるだけ小さくしたいのですが、
configureで削れるところは削ったのですが、
たとえば不要なウィジェットを使わないようにするなど細かい設定もできるんでしょうか。
451:デフォルトの名無しさん
06/10/25 08:45:59
>>450
stripでもかければ?
452:デフォルトの名無しさん
06/10/31 00:33:25
フォントがらみのことで質問があります。
QFont f = QFontDialog::getFont(&ok);
label.setText(f.family());
label.show();
のようなソースを実行し、ヒラギノ丸ゴを選択すると、表示されるウィンドウには
ヒラギノ丸ゴ Pro W4
という風に表示されます。
この、ヒラギノ丸ゴを直接Qfontに設定するつもりで
QFont font("ヒラギノ丸ゴ Pro W4");
という風にしても設定されませんでした。
QFontDialogを使わずにソースコード中に直接埋込むにはどのようにすれば良いのでしょうか?
使用しているQtのバージョンは4.2.0です。
以上、よろしくお願いします。
453:デフォルトの名無しさん
06/10/31 08:41:16
>>452
無責任な発言だけど、ソースファイルの漢字コードが違ってるとかじゃないのかなぁ。UTF8?
454:452
06/11/01 00:23:50
>>453
それは自分も確認しました。確かにUTF8で記述されたソースです。
職場のQt/win4.2.0では
QFont font(QObject::trUtf8("HG行書体"));
としたところ正しくHG行書体で表示されたので同じように
QFont font(QObject::trUtf8("ヒラギノ丸ゴPro W4"));
と、trUtf8の引数にしてみたのですがダメでした。
455:デフォルトの名無しさん
06/11/01 07:42:19
>>454
選択してでてくるってことは、たぶん"ヒラギノ丸ゴPro W4"って名前がおかしいんじゃないのかな。
半角英数とか半角スペースとかを疑ってみるべき。toStringしてみれば?
456:452
06/11/01 23:39:56
>>455
出来ました。フォント名が間違っていました。
QFontDatabaseでフォント一覧を作り、それをQTextEditに出力し、フォント名を
ソースにコピペしたところ、正しくヒラギノ丸ゴで出力されました。
下らない質問にお付き合い下さいまして、ありがとうございます。
正直、顔を真っ赤にしてカキコしてます……。
457:デフォルトの名無しさん
06/11/04 02:09:55
EclipseでQt4を使っています。
スロット&シグナルを使ったプログラムをコンパイルしたら、
undefined reference to vtable ...
というエラーがでてしまいました。
mocの指定(?)ができていないのが原因、ということだけは分かったのですが、
EclipseもQtも使い始めたばかりでどう対処したらよいのか分かりません。
どなたか、アドバイスいただけないでしょうか?
458:デフォルトの名無しさん
06/11/04 06:51:40
Q_OBJECTマクロを忘れている
クラス定義がヘッダファイルに無い
.proファイルを更新していない
とかチェックしてみて
459:デフォルトの名無しさん
06/11/04 12:08:30
お返事ありがとうございます。
Q_OBJECTマクロは、単にクラス定義のprivate部分に Q_OBJECT と書けばよいのですよね。
それで合っているなら、初めの2つは大丈夫だと思います。
.proファイルの更新、これがよく分かりません。
.proファイルや.moc自体できていません。
実はこのプログラムは本(C++ programming with Qt4)に載っていたものなのです。
このプログラムが必要で、ここに至るまでの部分を殆ど読み飛ばしてしまっているのが問題なのでしょうが・・・。
460:デフォルトの名無しさん
06/11/04 14:22:13
>>459
privateの前じゃなかったっけ?
461:デフォルトの名無しさん
06/11/04 15:39:32
>>459
>このプログラムが必要で、ここに至るまでの部分を殆ど読み飛ばしてしまっているのが問題なのでしょうが・・・。
qmakeでググるといいよ
462:デフォルトの名無しさん
06/11/04 21:43:26
フネ
463:デフォルトの名無しさん
06/11/05 01:29:22
qmake、使ってみることにしました。
それに伴い、今までManaged Makefile Projectにしていたのですが、
Standard Makefile Projectに変更しました。
必要と思われるライブラリをInclude Paths and Symbolsに指定して、
.proファイルを作って
Build commandに
qmake [ファイル名].pro
を指定してMakefileを作成し、
次にBuild commandに
make
を指定してプロジェクトのビルドをしたところ、
「QGLWidgetが見つからない」エラーがでてしまいました。
QGLWidgetのあるファイル([QTPATH]/include/QtOpenGL)はInclude pathに指定してあります。
何が足りなかったのでしょうか。
あるいは Build commandを初めとする使い方自体が間違っているのでしょうか?
464:デフォルトの名無しさん
06/11/05 03:57:24
eclipseもQtも使い始めたばかりなら、多分君はどちらが問題なのか切り分けが出来ないのでは?
個人的にはeclipseをやめて、テスト用のディレクトリを作成し、そちらで簡単なプログラムを作成
してコンパイルすることをお勧めする。
正直、eclipse+CDTはまだ初心者向けの環境ではないとおもう。
465:デフォルトの名無しさん
06/11/05 08:44:59
>>463
QGLWidgetが見つからないのがリンクエラーなら、 .pro ファイルに
QT += opengl
の記述が必要。
コンパイル時にインクルードが見つからないのなら、
URLリンク(lists.trolltech.com)
の2人めが書いているように、project settings に $QTDIR/include を追加する必要があるはず。
...自分は、MinGW環境(Windows)でやっているんだけど、設定するのが面倒(!)なので、
eclipseはエディタとしてしか使っておらず、コンパイルはQtをインストールしたときにできた
コマンドプロンプトでmakeしています。
466:デフォルトの名無しさん
06/11/05 08:46:15
ごめん、補足。
使ったことはないのだけれども、"Eclipse plugin for Qt" というのもあります。
URLリンク(artis.imag.fr)
ぜひ使ってみてレポートをw。
467:デフォルトの名無しさん
06/11/05 10:45:06
>>465
そんなあなたにmingw-developer studioおぬぬめ
激マイナーですかそうですか(´・ω・`)
468:デフォルトの名無しさん
06/11/05 13:41:05
QT += opengl,抜けていました($QTDIR/includeはokです)。
追加したら先のエラーは出なくなったけれども、今度は
cannot find -lqtmaind
と言われてしまいました。きっとこれを克服しても他のエラーが出るんだろうな。
コマンドプロンプトにした方がいいんだろうか??
インタフェース部分(Qtを使おうとしているところ)以外に、
ガッツリプログラムを書かなきゃならないので、
eclipseはそこでのデバッグにとても便利なのだけれど・・・。
Eclipseは確かに使い始めて日が浅いのだけれど、プログラム自体は多少かじっているから、
eclipseに関する問題は自分としてはライブラリやパスの指定をどこでしたらいいのか分からない、ということなのだと認識しています。
Eclipse plugin for Qtは職場で一度入れようとしたのですが、失敗したので・・・。
自宅と職場では同じ環境を使いたいのです。
469:デフォルトの名無しさん
06/11/05 14:30:52
linuxにしてkdeveloper使えばnearly解決?
470:デフォルトの名無しさん
06/11/05 18:19:50
職場、共有マシンなのでOSを入れるのはためらわれます。
なので、Windows+MinGW以外で使ったことないです。
作ったアプリはマルチプラットフォームでも、
作る環境はきっとWindows以外のほうがいいのだろうな、とは思っているのですが。
WindowsでIDE使ってQtなんて、高望みすぎるんですかね・・・。
471:デフォルトの名無しさん
06/11/05 19:43:43
qemuでも使って仮想PC上で動かせば?
472:デフォルトの名無しさん
06/11/05 20:12:49
高望み、というか。
Javaと違って、C/C++は泥臭い言語だし、Qtのようなフレームワークを使っててもやはり泥臭い。
こういう泥臭い言語はある程度は泥臭いことを経験しておかないと、いつまで経っても人に質問し
てばかりになる。
以上、抹香臭い年寄の小言。
そのエラーに関しては
>>170
を確認したかな?
473:デフォルトの名無しさん
06/11/05 21:48:07
>>470
会社で使うのだったら、商用版を買うとかなり楽だぞ。
(Qt Integrationは結構良い。)
あと、"make -f Makefile.Release" とやればコンパイルは通るのでは?
(コマンドラインで、だけど。)
474:デフォルトの名無しさん
06/11/06 01:10:44
>> 472
抹香臭くなんかない 核心を突いてる。
170を確認後、Qt 4.2.1 (Build Debug Libraries) を実行しようとしたんだが、
'mingw32-make' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
と言われてしまった。未熟だな。まだまだ泥臭いことの経験が足りん。
>> 473
プロパティー → C/C++ Make Project → Make Builder
→ Build command で
Use defaultのチェックを外してBuild command: に
make -f Makefile.Releaseを指定してみた。
コンパイルできた!!ちゃんと実行できた。ありがとう。
475:デフォルトの名無しさん
06/12/05 01:27:22
4.2.2を使ってるんだけどlinuxとwindowsでQSystemTrayの挙動が違う
linuxは最後のウィンドウを閉じてもタスクトレイが残っててプロセスもちゃんと生きてるんだけど、
windowsではウィンドウを閉じるとプロセスごと終了してしまう
だれか打開策を知らないだろうか?
476:デフォルトの名無しさん
06/12/05 22:04:14
ファイルダイアログを使ってファイルを開くためのスロットを
サンプル見ながら作ったのですが
void MainWindow::open()
{
QString fileName = QFileDialog::getOpenFileName(this,
tr("QFileDialog::getOpenFileName()"),
infoLabel->text(),
tr("All Files (*);;IMG Files (*.img)"));
if (!fileName.isEmpty())
fopen(fileName.data(),"rb");
}
このように作ってみると、コンパイル時にcharに変換出来ませんと出るのですが
一般的にはどのようにするのでしょうか?
qt4.2win です。
477:デフォルトの名無しさん
06/12/05 22:16:43
data()はQChar *を返すようです。
fopenではなく、Qtのクラスを使うのはどうですか。
478:デフォルトの名無しさん
06/12/10 04:49:45
>>476
fileName.toLocal8Bit().constData() でどうでしょう?
479:デフォルトの名無しさん
06/12/16 17:53:40
PhotoshopまでQt使って作ってるのか、ちょっとびっくり
URLリンク(journal.mycom.co.jp)
480:デフォルトの名無しさん
06/12/18 17:28:27
Qt4.2.1 Win FreeのVS Patchで、VS2005にSP1を入れたら、コンパイルできなく
なりませんか?
481:デフォルトの名無しさん
06/12/18 17:43:55
>>480
>qt ライブラリ ソースの最新の バージョンがコンパイルでエラーを生成しま
>す。:
>VC++コンパイラの修正プログラムで、特定のテンプレート コードが Visual
>Studio 2005 SP1 でコンパイルしないで、そして C2244 エラーを生成するの
>が発生しました。 SP1 を使わないでコンパイルを実行するコードでは、継承
>されたテンプレート クラスと入れ子になった型を使用します。 特にこうし
>たテンプレート コードを使用する qt ライブラリ ソースの現在のバージョ
>ンは、この変更の影響を受けてあります。
こんなの回避できません。ので、SP1は待ちかも。
482:デフォルトの名無しさん
06/12/19 12:38:19
Qtでグローバルなキーボード/マウスフックを入れる方法はありますか?
483:45
06/12/19 14:26:43
シェーカーソートで昇順に並べるプログラムを教えてください。あと移動回数もわかるやつでおねがいします。
484:デフォルトの名無しさん
06/12/19 21:51:30
タブエディタつくりたいんだけどQtでタブの部分できる?
485:デフォルトの名無しさん
06/12/20 01:24:53
>>484
ドキュメントのAll Functionsのところでtabを探してみる位の努力をしてはいかがですか?
486:デフォルトの名無しさん
06/12/20 01:30:57
>>482
QApplication::desktop()->grubMouse()とかできないかなぁ?
>>483
スレ違い
>>484
All Classesだったorz
487:デフォルトの名無しさん
06/12/20 04:11:22
Qtが死滅するのはいつ頃ですか?
488:デフォルトの名無しさん
06/12/20 13:45:13
>>479
Photoshopには使ってないしPhotoshopのUIにも使ってないよ。
Photoshop ELのおまけの画像管理ソフトに使ってるよ。
誤解を生むことを意図した営業トークだよ。
489:デフォルトの名無しさん
06/12/21 11:30:38
教えてください。
例えばQPushButton1からQPushButton100まであります。
QPushButton1から順番に回して属性を変更したいのですが、
QPushButton1の様なコントロール名の数字の部分を変数にして処理するにはどうすればいいでしょうか。
for(int i=0; i < 100; i++)
{
int n = i+1;
Form1::Button1 -> setHoge(moge);
}
490:デフォルトの名無しさん
06/12/21 14:32:17
配列に入れればいいじゃない
491:デフォルトの名無しさん
06/12/21 14:55:33
あと試してないけど parent->children() でリストを取得して
child->objectName() で名前を取得すればいんじゃね?
492:デフォルトの名無しさん
06/12/21 16:00:37
>>490-491
僕には難しくって何がなんだかさっぱり分かりません。
ボタン2個だけ、別のボタンを押すとこの2個のボタンサイズが変わる様なサンプルアプリ作って試してみようと思います。
レスありがとうございます。
493:デフォルトの名無しさん
06/12/21 22:11:02
#ifndef HOGE_H
#define HOGE_H
#include <QWidget>
class QPushButton;
class Hoge : public QWidget
{
Q_OBJECT;
public:
Hoge(QWidget *parent=0);
~Hoge();
private:
QVector<QPushButton *> v;
public slots:
void larger();
void smaller();
};
#endif // HOGE_H
494:デフォルトの名無しさん
06/12/21 22:11:35
#define HOGE_CPP
#include <QtGui>
#include "hoge.h"
Hoge::Hoge(QWidget *parent)
:QWidget(parent)
{
for(int i=0; i<20;i++) v.append(new QPushButton(QString::number(i)));
QPushButton *l = new QPushButton(tr("&Larger"));
QPushButton *s = new QPushButton(tr("&Smaller"));
connect(l, SIGNAL(clicked()), this, SLOT(larger()));
connect(s, SIGNAL(clicked()), this, SLOT(smaller()));
QVBoxLayout *vbox0 = new QVBoxLayout;
for(int i=0;i<v.count();i++) vbox0->addWidget(v.at(i));
QVBoxLayout *vbox1 = new QVBoxLayout;
vbox1->addWidget(l);
vbox1->addWidget(s);
QHBoxLayout *hbox = new QHBoxLayout;
hbox->addLayout(vbox0);
hbox->addLayout(vbox1);
setLayout(hbox);
}
Hoge::~Hoge(){ qDeleteAll(v); }
void Hoge::larger(){ for(int i=0;i<v.count();i++) v.at(i)->resize(v.at(i)->size()*1.1f); }
void Hoge::smaller(){ for(int i=0;i<v.count();i++) v.at(i)->resize(v.at(i)->size()*0.9f); }
495:デフォルトの名無しさん
06/12/22 05:47:36
ネタだろ?
CやC++の基礎も理解してないやつにQtを使えるわけがない。
496:デフォルトの名無しさん
06/12/22 10:53:14
ネタじゃないんですよ。ちょっとずつですが必要になった所を勉強しながらちまちま作ってます。
仕事ではないです。
C++はたまたまQtがそれで書かれていたからはじめただけで、言語やツールキットなんて
何でも良かったし、当然Qtである必要もありませんでした。
自分の書くコードはこの上無く陳腐で、美しさのかけらもないのは自覚しています。
上で質問させて頂いたのも、このせいなんです。
>>493-494 を見せていただいて、思い描いていたのと全く違ってました。
既に作ってしまっているQPushButton0〜19の名前をどうこうするわけではないんですね。
ありがとうございます。
497:デフォルトの名無しさん
06/12/23 03:17:15
>>496
本当にネタじゃないなら、一応アドバイス。
C++どころか、プログラムすら未経験っぽいあなたが
どうしてQtでなんか作ろうと思ったのかは知らないけど、
まずはC++の勉強をそこそこやった方がいいと思う。
本でもネットでもいいから、とりあえず条件、反復、配列、ポインタ、クラスあたりは
書けるようにしといたら、大分違うよ。
実は俺もQtで書こうと思ったらC++だったんで、C++学びはじめたんだ。
Cはまぁ書けたけど、C++は食わず嫌いしてたんだなぁ。
でもQtのコード見てたらシンプルさに感動して、今ではC++好きだよ。
498:デフォルトの名無しさん
06/12/23 03:56:22
>>497
アドバイスに感謝します。精進します。
499:デフォルトの名無しさん
06/12/25 05:36:07
Borland C++ builderからQt+VS2005に移行した者ですが、Borlandは
いろいろ言われていても、有償・無償のコンポーネントが世界中に
たくさんあり、必要なコンポーネントはたいていの場合見つかって
いました。Qtのコンポーネントってあまりないですよね??
URLリンク(www.scl.com)
URLリンク(www.digitalfanatics.org)
あと、本家のHPにあったはずだが使えるものがほとんどなかった。
他にないですか?
500:デフォルトの名無しさん
06/12/25 09:01:26
>>499
まあ、まちがいなく数はすくないだろー。
どんなのお探し?
ちなみに、つくってTrollに売ったら、ライセンス料をまけてくれるという噂。
501:499
06/12/25 14:56:42
いままでBorland関係で使ったコンポーネントを挙げれば、
・TWAIN制御、読込
・DirectX関係
・アプリケーションエラーのログを実行時に取るコンポーネント
・ウインドウサイズの前回の状態保存、復元
・データ圧縮
・別のEXEを起動
・共有メモリー
・画面FORMとCPPソースから文字列を抽出し、他国語に変換したファイルをEXCELで作成できるツール+コンポネント
・タスクトレイに入るコンポーネント
・アニメーションアイコン
・リバースエンジニアからコードを保護するプロテクト用のコンポーネント
・ヒントボックス(バルーン表示)
・複数起動禁止
・キャプションバーにボタンをつける
・バーコード出力
・かっこいいボタン、チェックボックスなど
・3Dグラフ表示
>500
ありがとうございます。いいこと聞きました。早速その噂を調べます。
502:デフォルトの名無しさん
07/01/06 04:23:57
Qt4.2から登場したGraphicsViewを使ってプログラミングしています。
検索しても、全然引っかかりません。 orz...
GraphicsViewを使っているFLOSSプロジェクトをご存じでしたら、教えてください。
503:502
07/01/06 04:27:48
ひとつありました。
URLリンク(kde-apps.org)
504:デフォルトの名無しさん
07/01/09 23:50:55
>>501
ほとんどはWindowsに依存した機能だよね??
Qtでラッピングする意味ないような。
505:デフォルトの名無しさん
07/01/14 20:12:29
受注仕事でソース納品の時とかは使えないよね?
506:デフォルトの名無しさん
07/01/14 23:17:06
>>505
ん? SRAからライセンスを書けばよいのでは?
507:デフォルトの名無しさん
07/01/15 00:47:24
>>506
すまん。書き方が悪かったな。
例えばオレがQtの商用ライセンス買ってプログラム作るとするじゃん。
んで、発注元にそれを納入するじゃん。
そのとき納入物にQt自体のソースを含めてもいいの?
あと、発注元がそのプログラムで商売するとき、
(パッケージソフトとして売るにしろ、ソースごと他所に売るにしろ)
発注元も商用ライセンスを買わないといけないの?
だとしたら、嫌がられない?
まあ、零細企業の発想と言われてしまえば
それまでだが。
508:デフォルトの名無しさん
07/01/15 01:29:38
下請けが相談もせず勝手にライセンス買って納品?
そんな会社(技術者)には任せられない。
509:デフォルトの名無しさん
07/01/15 05:38:18
自分の都合を中心に世界が回ってると思ってそうな奴だな。
510:デフォルトの名無しさん
07/01/15 12:23:38
え? 商用ライセンスは発注元にソース公開しなくていいって
ライセンスじゃないの?
発注元にソース公開するのがデフォならフリー版つかうか、
Qtのソースを含めずに納品して、発注元がQtの商用ライセンス
購入するかじゃね?
511:デフォルトの名無しさん
07/01/17 00:40:17
商用ライセンスしかないと考えるべきじゃないの。
Windows開発するとして、MSのVisualシリーズと
Delphiとかかで開発したら、基本的にみんなが買わなきゃイケナイだろ。
>510
フリー版使っちゃったら、その時点でそれ以降、作成したソフトを
GPLでライセンスするしかない縛りになるんじゃなかった?
512:デフォルトの名無しさん
07/01/17 02:28:51
そう、俺の理解では、フリー版Qt使って納品したら納品先には
自分のコードもGPLで納品することになると思っている。
それを嫌う人が多いのも承知している。
ところが実際問題、自分のコードがGPLになったからといって、
ちゃんと代金受け取れれば別に問題ないんではないかとも思える。
納品先がそのコードをバラまくメリットもあまりないだろうし、
GPLでなかったとしてもいずれにしてもソース納品ってケースなら
なおさら納品先がソースいじったり別の人雇っていじらせる可能性
はもともとあるんだし。
そこさえわりきれればGPLのソース使いまくって楽できる。
俺ならGPLでソース書いて金もらえるなんてラッキーと思う。
513:デフォルトの名無しさん
07/01/17 09:05:32
>>512
納品先がGPLに対応してくれるならな。
普通はそういった労力を嫌うとおもうけど。
514:デフォルトの名無しさん
07/01/17 09:14:13
>>507
Qt4は、出荷一本あたりいくらかはらう必要がある。(Windowsだけかな?)
商用版は、開発するユーザーが購入すべきライセンス。
515:デフォルトの名無しさん
07/01/17 20:21:40
まあ確かに、インハウスでしか使用しない前提のソフトなら、
ライセンスがGPLだからって「安くなるならいいんじゃねーの」ってところかもだ。
516:デフォルトの名無しさん
07/01/17 22:45:25
URLリンク(www.trolltech.com)
社内利用でもNoというのが、納得いかない
517:デフォルトの名無しさん
07/01/18 00:37:19
社内利用だからってGPL(の様々な規定)を免れると思うな、って意味だな。
518:512
07/01/18 01:25:01
>>514
サンキュー
>>508
>下請けが相談もせず勝手にライセンス買って納品?
相談もせずにとか誰も言ってないだろ
提案レベルでの話だ
>>512
>そう、俺の理解では、フリー版Qt使って納品したら納品先には
>自分のコードもGPLで納品することになると思っている。
>それを嫌う人が多いのも承知している。
>
>ところが実際問題、自分のコードがGPLになったからといって、
>ちゃんと代金受け取れれば別に問題ないんではないかとも思える。
著作権が自分にあるコードなら何も問題ないんだよ。
ソース納品 = ソースは納品先のものじゃん
んで、Qt使うとなると、納品先がメンテするときに
開発ライセンス買うか、Qtできるとこ(ライセンスを持っているとこ)に出すか
っていう制約がついてくるわけじゃん。
そうなると、そうそう「Qt使ってやりましょう」とかいえないじゃん。
んで>>505で何が言いたかったかというと
仕事で使ってる人はどういうケースで
使ってんのかなって聞きたかったわけだ。
微妙にすれ違いになってスマソ。
519:デフォルトの名無しさん
07/01/18 01:33:37
独り言だけど、Open Source Edition で開発したものは必ずしも GPL でなくてもいいのか。
URLリンク(www.trolltech.com)
520:デフォルトの名無しさん
07/01/18 01:43:32
ごめん間違えた
>>518 = >>507 = オレ
521:デフォルトの名無しさん
07/01/18 03:00:28
>>516
むしろ社内利用ならGPLでいいじゃん。
自社開発で自社にソース公開なんて普通だろ?
522:デフォルトの名無しさん
07/01/18 03:56:30
>>519
すれ違いになるかもしれんけど
URLリンク(www.gnu.org)
URLリンク(www.sra.co.jp)
GPLもSRAもGPLでなきゃダメだと言ってるんだがどうなんだろ
523:デフォルトの名無しさん
07/01/18 08:00:01
それ(自分で開発したソフト)にどんなライセンス付けようと勝手だけど、
QTがGPLな以上、配布するならライセンスはGPLコンパチな(=感染しても
問題ないライセンスである)必要がある。
システム全体としてはGPLになるんだよ、みたいな話なのかね。
524:デフォルトの名無しさん
07/01/18 08:55:55
>>522
自分で書いたソースの部分は GPL コンパチなライセンスなら何でも良いはず。
コンパイルして、GPL なライブラリとリンクした時点で GPL が適用されるけど、
その際に GPL とライセンスがコンフリクトしなければ良い。
そうじゃないと BSDL なライブラリと混ぜられないでしょ。
525:デフォルトの名無しさん
07/01/18 09:05:17
>>518
linuxZaurus,mylo,DivX,Skypeとか。
イメージでは、組み込みか、Linuxを含んだマルチプラットフォームでリリースしたいと思っているところかな?
>>521
GPLだと社外への配布に制限をつけられんと思うが、、、
セキュリティ上問題では?
Qtの普及に貢献する(オープンソース)か、対価を払う(商用)か、どっちかを選べ、というだけかと。
526:デフォルトの名無しさん
07/01/18 14:41:46
>>525
社外への配布に制限がつけられない?
社内システムを自社開発するのなら、納品先は社員でしょ?
ソース持ち出すななんて、社内のルールで縛れるんじゃないの?
それとも公開義務の話? 社外からソース公開しろっていわれても
公開する義務はないと思うけど。
527:デフォルトの名無しさん
07/01/18 23:02:47
>>526
「著作権(GPL)」と「会社のルール」のところで、ちょっとリスクがあるかな、と思うんだが。
つまり、著作権は法律で保護されている=copy leftの原則を行使される可能性がある、ということ。
こころない人によってルールが破られたときのリスクを理解した上で、どおってことないツールを
作るのに使うのなら別に構わないと思う。
528:デフォルトの名無しさん
07/01/18 23:29:08
>>526
GPL を遵守するのが前提であれば、社内ルールで制限をかけるのは無理。
公開したくない部分はサーバ側に逃がすか別プロセスにすれば良い。
529:デフォルトの名無しさん
07/01/19 00:53:24
>>528
ほんとに? 「ソフトを配布するときに相手にソースも配布しろ」
ってのがGPLのルールでしょ? 社内ソフトは外部に配布しない
んだから、当然社外にソースは配布しないでしょ?
530:デフォルトの名無しさん
07/01/19 08:57:34
>>529
なんか釣りのように思えてきた、、、。
別にソースの同時配布を義務づけるのがGPLではない、と思うのだが。
ルールと権利(〜できる)を混同してないか?
531:デフォルトの名無しさん
07/01/19 09:03:46
>>529
「ソフトを配布する時に相手にもそのソフトを配布する権利を与えろ」ってルールもある。
・ソフトウェアを受け取った誰かがそのソフトウェアを再配布する事を制限するような
付帯条件を付けるのは GPL 違反
URLリンク(www.gnu.org)
・ソフトウェアを受け取った人が再配布をしないと決める事は出来る
ただし、それでも再配布をする権利は有する
URLリンク(www.gnu.org)
実際の運用は弁護士と相談した方が良いよ。
532:デフォルトの名無しさん
07/01/19 22:46:52
>>507
URLリンク(www.sra.co.jp)
>(1)商用版
>配布形態に応じてライセンスを自由に選択することができます (商用、オープンソース、両方)
533:デフォルトの名無しさん
07/01/20 01:17:35
>>531
「ソフトウェアを再配布する事を制限するような付帯条件」を
ソフトウェアのライセンスに付けるのはたしかに違反だけど、
社員と会社の間の雇用契約として再配布をしないって決めること
にはなにも問題ないと俺は考えてる。
再配布をやっちゃった場合に、ソフトウェアライセンスには違反
してないってだけで、雇用契約に違反している。と。
無免許運転で子供をはねた場合に、児童虐待防止法では故意で
子供を傷つけたのでなければOKなんだけど、道路交通法で問題に
なるってのと同じじゃない?
534:デフォルトの名無しさん
07/01/20 08:04:39
【GPL】ライセンス問題討論すれ7【BSDL】
スレリンク(linux板)
535:デフォルトの名無しさん
07/01/20 13:43:37
>>534
もうその話題はオワットルがな。
536:デフォルトの名無しさん
07/01/20 14:17:31
すげースレ違いだな
ただのライセンスの話じゃん
537:デフォルトの名無しさん
07/01/20 14:35:14
>>536
もうその話題はオワットルがな。
538:デフォルトの名無しさん
07/01/20 21:49:00
デモのimageviewerを参考にフォームにラベルとテキストエディット
を配置しラベルに画像、テキストエディットにファイル名を表示
するように作ったのですがラベルにスクロールバーを
作るところがうまくいきません。
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open File"), QDir::currentPath());
if (!fileName.isEmpty()) {
QImage image(fileName);
if (image.isNull()) {
QMessageBox::information(this, tr("Image Viewer"),
tr("Cannot load %1.").arg(fileName));
return;
}
textedit->setText(fileName);
imagelabel->setPixmap(QPixmap::fromImage(image));
imagelabel->setScaledContents (true );
scrollArea = new QScrollArea;
scrollArea->setBackgroundRole(QPalette::Dark);
scrollArea->setWidget(imagelabel);
と書いたのですがうまくいきません、最後の三行をなくせば
画像は表示されますが2000×2000程度の画像なので画面から
はみ出してフォームが拡大されてしまいます。
どのようにすればいいのでしょうか。
539:デフォルトの名無しさん
07/01/20 22:54:50
>>538
ラベルでやるのではなくて、QGraphicsViewをつかえばどうかなあ?
540:539
07/01/21 00:14:57
>>528
ただ言うだけでも何かな、と思ったのでサンプルを書いてみました。
URLリンク(nnsh.hp.infoseek.co.jp)
QGraphicsViewという表示エリアを用意して、データをQGraphicsSceneに入れて表示するだけです。
541:538
07/01/21 00:31:22
539様、詳細な説明入りのサンプルコードまで書いて頂いてすみません。
QGraphicsView関連はデモのコードを見ても入り組んでいてよく分からなかった
のですが、お陰様で前に進めそうです、本当に有難うございました。
542:デフォルトの名無しさん
07/01/22 13:42:20
度々すみません、同心円を解析するソフトを作っているのですが、
まず中心を合わせるためのスロットをこのように作りました。
QGraphicsScene scene;
void IV::on_spinBox_valueChanged(int value)
{
X=value;
QPixmap pix(fileName);
QPainter p(&pix);
p.setPen(qRgb(255,0,0));
p.drawEllipse(X-100,Y-100,200,200);
scene.addPixmap(pix);
}
Yについても同様に作ったのですが、一度だけ反応するのですが
2回目からは反応しません、何処が悪いのでしょうか?
543:デフォルトの名無しさん
07/01/22 18:22:55
>>542
addPixmap()する前に、前のアイテムをremoveItem()してからaddPixmap()する、というのはどうでしょうか?
addPixmap()の返り値で、removeItem()するアイテムのポインタを取得できるはずです。
544:デフォルトの名無しさん
07/01/22 19:11:34
ご指摘有難う御座います。
scene.removeItem(scene.addPixmap(pix));
scene.addPixmap(pix);
この様に追加した所うまくいくようになりました。
有難う御座いました。
545:(´・ω・)
07/01/29 18:31:04
Undelivered Mail Returned to Sender
This is the Postfix program at host srasca.sra.co.jp. I'm sorry to have to inform you that the message returned
below could not be delivered to one or more destinations. For further assistance, please send mail to <postmaster>
If you do so, please include this problem report. You can delete your own text from the message returned below.
The Postfix program
<qt-sale@sra.co.jp>: host sranha.sra.co.jp[133.137.8.8] said: 550
<qt-sale@sra.co.jp>... User unknown
Final-Recipient: rfc822; qt-sale@sra.co.jp
Action: failed
Status: 5.0.0
Diagnostic-Code: X-Postfix; host sranha.sra.co.jp[133.137.8.8] said: 550
<qt-sale@sra.co.jp>... User unknown
---------- 転送されたメッセージ ----------
From: "Kimura Kazuhiro" <kkimura@example.net>
To: "qt-sale@sra.co.jp" <qt-sale@sra.co.jp>
Date: Fri, 26 Jan 2007 11:40:26 +0900
Subject: Re: 【 (株 )SRA Qt MailNews 特別号】 SRA主催お勧め無料セミナーの御案内
> ★このメールをお受け取りになったお客様へ★
> このメールは、Trolltech Qt製品をお使いのお客様、過去にTrolltech Qt製品の
> お問合せを頂いているお客様、各種サービスよりTrolltech Qt製品情報にお問合
> せを頂いたお客様にお送りしております。
> メール配信の停止、配信先の変更等ございましたら、このメールにご返信下さい。
配信停止をお願いいたします。
546:デフォルトの名無しさん
07/01/31 17:50:42
Qペイントでフォームに線をひきたいのですがペイントイベントを使わずに
ボタンをクリックした時に引くにはどうすればいいのですか?
547:デフォルトの名無しさん
07/01/31 20:25:27
シグナル、スロット使えばいいのでは?
QPushButton *b=new QPushButton;
connect(b, SIGNAL(clicked()), this, SLOT(hoge()));
void hoge(){ /*線を引く*/ }
548:デフォルトの名無しさん
07/02/02 00:09:05
Qtって、Desktop Light Licenseでも30万近くするんだね。
高いなぁ。
549:デフォルトの名無しさん
07/02/02 00:17:51
GPL採用すればロハじゃん。
550:デフォルトの名無しさん
07/02/02 11:21:52
>>547さん
いえ、そのようにしてもQPainterはpaintevent内でしか
使えないというようなエラーが出てしまうんです。
551:デフォルトの名無しさん
07/02/02 21:02:18
//こんな感じではどうでしょうか?(もっといいやり方あるかも...)
#include <QWidget>
class QPushButton;
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent=0);
void paintEvent(QPaintEvent *e);
QPushButton *button;
void drawBackGround(QPainter &p, int w, int h);
void drawForeGround(QPainter &p, int w, int h);
bool disp;
public slots:
void buttonClicked();
};
552:デフォルトの名無しさん
07/02/02 21:05:07
#include <QtGui>
#include "widget.h"
Widget::Widget(QWidget *parent)
: QWidget(parent), disp(false){
button=new QPushButton;
connect(button, SIGNAL(clicked()), this, SLOT(buttonClicked()));
QVBoxLayout *l = new QVBoxLayout;l->addWidget(button);setLayout(l);
}
void Widget::drawBackGround(QPainter &p, int w, int h){
QRadialGradient g;g.setCenter(QPoint(0, 0));
g.setFocalPoint(QPoint(10, 10));g.setRadius(w/2);
g.setColorAt(0.0, Qt::white);g.setColorAt(0.2, Qt::green);
g.setColorAt(1.0, Qt::black);p.setBrush(g);p.drawRect(QRect(-w/2, -h/2, w, h));
}
void Widget::drawForeGround(QPainter &p, int w, int h){
p.setPen(QPen(Qt::black, 1, Qt::DashDotLine, Qt::RoundCap));
p.setBrush(QBrush(Qt::red, Qt::DiagCrossPattern));
QMatrix m;m.translate(-w/4, -h/4);m.rotate(90.0);p.setMatrix(m);
p.drawPie(QRect(-w/8, -h/8, w/4, h/4), 30*16,300*16);
}
void Widget::buttonClicked(){disp=!disp;update();}
void Widget::paintEvent(QPaintEvent */*e*/){
QPainter p(this);
p.setRenderHint(QPainter::Antialiasing, true);
int w=100,h=100;
p.setViewport(0, 0, width(), height());
p.setWindow(-w/2, -h/2, w, h);
drawBackGround(p, w, h);
if(disp) drawForeGround(p, w, h);
}
553:デフォルトの名無しさん
07/02/06 17:17:20
>>546
classにprivateなフラグ変数 draw_line = 0;でも書いといて、
ボタンクリックしたら、draw_lineを1にして描画イベントを呼び出す。
painteventでは、draw_lineが1なら、線を引くといってみる。
554:デフォルトの名無しさん
07/02/08 23:40:04
日本語を使うのって、関数でコンバートするか、別ファイルに保存して読み込むしかない?
ファイルをUTF-8にしたら、そのまま日本語が通るなんてことはできない?
555:デフォルトの名無しさん
07/02/09 08:39:07
>>554
通るはずたけど。
.uiは、UTF8なはず。
556:デフォルトの名無しさん
07/02/09 21:04:02
>>555
え、そうですか?
ボタンの文字を日本語とアルファベットにして、フォントをMS Gothicにしてみましたが、
日本語部分だけ文字化けしてしまったんですが。
シフトJIS、UTF-8両方で試しました。
557:デフォルトの名無しさん
07/02/09 22:11:50
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
558:デフォルトの名無しさん
07/02/10 12:48:02
>>556
MS ゴシックって、Qt で Windows 専用開発でもしてるの?
559:554
07/02/13 20:24:39
遅レスですが、>>557と類似命令で出来ました!
ありがとうございました。
>>558
デフォルトのフォントが日本語が通らないものかな、と思ったので、
適当にやってみました。
Qt触るの初めてなもので。
560:デフォルトの名無しさん
07/02/15 16:12:41
Qtの中の人ってwxWigetsなんでつか?
561:デフォルトの名無しさん
07/02/16 00:18:17
別個のものです!
562:デフォルトの名無しさん
07/02/16 08:53:46
Qtってどういう用途で使われてるんですか?
wxWigetsと領域被ってるような。。。
563:デフォルトの名無しさん
07/02/16 09:19:28
>>562
ブラウザもあればKDEもあるし、
P2Pアプリケーションもある。
むしろwxWidgetsで作られたアプリを知りたい。
564:デフォルトの名無しさん
07/02/16 09:34:09
あ、そういう話ね。
ウィンドウライブラリを使う側の話だったんだけど。
Qtだと企業の物だし、組み込みで使おうとしたらライセンス要ったりめんどーかなーと。
565:デフォルトの名無しさん
07/02/16 23:38:59
トラブルが起きた時のサポートの事を考えると、仕事で使うのには結局何らかの契約が必要な訳で。問題があればとにかく煽りを入れて、連日徹夜させてでも納期を守らさせなくてはいけない。
場合によっては、海外にある相手のオフィスに監視要員を送り込むような事も必要。。
566:デフォルトの名無しさん
07/02/18 04:50:20
社内で使うアプリに使用するだけで
社外に出さない場合とかはライセンスどうなるの?
567:デフォルトの名無しさん
07/02/20 00:41:40
KDE日本ユーザー会って活動してるの?
掲載情報が古いすぎ
568:デフォルトの名無しさん
07/02/20 09:20:57
565の内容を理解したいんだが、
何度読んでも事態とか情景が分からない。
569:デフォルトの名無しさん
07/02/20 10:45:41
>>568
会社で働けばわかります
570:デフォルトの名無しさん
07/02/20 11:07:26
え、何、565の内容ってQtに関係無くってただの会社の情景?
バカらしい文章読んじゃったぜ。
571:デフォルトの名無しさん
07/02/22 18:22:45
質問です
マウスのクリックでプロットして図形を作成するものを開発しているのですが、わからないところがあったのでよろしければ回答お願いします。
クリック時にQlistBoxでプロットの回数と、座標を表示するようにしているのですが表示したItemをクリックしたときにプロットした点がわかるようにしたいのです。
点が小さいため、そのものを赤くしたら全然見えなくて拡大または他の方法がありませんでしょうか?
またItemをクリックしたら処理をするようにするには、どのような関数を使えばよいのでしょうか?
お願いします
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4878日前に更新/258 KB
担当:undef