【RAD統合環境】 Qt 総合スレ 15 【Win/Mac/Linux】
Qt(キュート)は C++ ベースのフレームワーク&RAD開発環境です。
ライブラリの機能は、フォーム、ボタンなどの各種ウィジェットからネットワーク、マルチスレッド、
グラフィックス(OpenGL)や各種コンテナ、XMLパーサー、組み込み JavaScript など、非常に多岐に渡ります。
公式の統合開発環境「Qt Creator IDE」を使えば、クロスプラットフォーム対応のRAD開発が可能です。
また、EclipseやVisual Studio上で開発したい人のためのアドインも用意されています。
■主な対応プラットフォーム(デスクトップ用途の場合)
Windows XP, Vista, 7
Mac OS X 10.4, 10.5, 10.6
Linux
■ライセンス
・オープンソース版(Open-source version)
LGPL 2.1 または GPL 3.0 のうちどちらかを利用者が選べます。
LGPL を選んだ場合はソースコード非公開のままでの商用利用が可能です(いくつか制限あり)。
※正確には通常「LGPL+商用利用向きの例外条項」を選ぶことにな7ります(Qtインストール先の「LGPL_EXCEPTION.txt」を参照)。
ちなみにGPLでも商用利用が不可能というわけではありません、念のため。
・商用版(Commercial version)
こっちはDigia社か日本の代理店(SRA社)とライセンス契約(年間30万くらい?)を結んで使います
■Qt を使って作られたソフト例
KDE、Maya、Adobe Photoshop Elements、Google Earth、Skype、DAZ Studio
MotionBuilder、RealFlow、Nuke、LuxRender、Mathematica、Kindle、VirtualBox など
■前スレ
【RAD統合環境】 Qt 総合スレ 14 【Win/Mac/Linux】
http://toro.2ch.net/test/read.cgi/tech/1344830647/
Windows ユーザー向け Tips ・プロジェクトのパスに日本語を入れちゃダメ ・日本語のソースコードはUTF8 BOMで保存するとMinGW版でもVC版でもコンパイルできる プロジェクト作成後に「プロジェクト」タブの「エディタの設定」→「デフォルトの文字コード」 ・デバッグ出力などが文字化けする場合、プログラムの最初で文字コード変換設定をする QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); //ソースの文字コードを直接指定("utf-8"や"Shift-JIS") // QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale()); //システムロケールの文字コードを指定 QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8")); //翻訳用マクロ tr()の文字コード qDebug() << "うまく表示できた?"; ・MinGW版配布時は mingwm10.dll も一緒に入れる(public domain。配布上の制限はない)
例えばボタンのclick()でどっかのウィジェットに線描画したいときはどう書けばいい? QPainterで書こうとしたんだけど、paintEventの中に書かないと描いてくれなくて困ってる。
7 :
デフォルトの名無しさん :2013/04/21(日) 07:11:27.98
>>1 どっかのウィジェットのサブクラスを作ってpaintEventを再実装。
>>7 ありがとう。やっぱしpaintEventに書くことになるんか
QImageかQPixmapをバッファとしてウィジェットのメンバに追加して、 clickでバッファに描画、paintEventでバッファをウィジェットに描画でおk
QStringListのitemの中にコマンド名を入れたいが、英文でも文字化けする。 qDebug()ではまともに表示されるのだが。うむわからん。 for (int i=0;i<=10;i++){ SubMenu3.addAction(QString(item.at(i)).toAscii()); }
自己解決。itemのヘッダファイルの宣言がQStringになってた。
winで5.0.2 64bitビルドしてみた人いる? 途中で失敗するんだけど俺だけ?
winで5.0.2 64bitビルドしてみた人いる? 途中で失敗するんだけど俺だけ?
msvc2010だけど、 32,x64,shared,staticのビルド成功している
てか5.0.2は64bit版置いてあるけど、知っててあえてビルドしてるのかな 俺はopengl版でもQtGUIとglewが同時にインクルードできないことに気づいてまた4.8.4に戻った
17 :
デフォルトの名無しさん :2013/04/26(金) 00:08:46.28
あー、win 7以前で vs2012が入れられないとかの事情か 雑談ごめん
あらためて
>>15 読んだ。ビルドできたりできなかったりは
jomの影響もあるんだな。インストールしたの忘れてたよ。
MSVC2010のばあい、5.0.2はSDKのインストールなしでビルドできた。
はじめて4.8.4のビルド成功した記念 Windows7, MSVC2010, 64bit 4.8.4 jomあると失敗、SDK必要 5.0.2 jomなし、SDK不要
Qtを自力でビルドできるなんて凄いですね
Qt様〜
Qtサイキョ
Qtおよび、C++初心者です。 下記URLのサンプルコードを使用して、TCP/IPでの相互通信を行いたいのですが、 ビルドに失敗してしまいます。 memotiyou.blogspot.jp/2012/02/qt-c-tcp_3936.html 「mainwindow.h」に「#include <QTcpServer>」を追加して、 「エラー: 'QTcpServer' does not name a type」は解決でしたのですが、 「エラー: 'Request' does not name a type」の解決方法が分かりません。 どこを直せば良いでしょうか?ご教示願います。 環境は、Windows 7 64Bit。Qtのバージョンは5.0.2です。 よろしくお願い致します。
class Request; でも追加しておけば。。
よくわからんけどURLが開けなかった
>また.proファイルに QT += network を必ず追加してください。 これちゃんとやった?
28 :
24 :2013/05/03(金) 01:20:34.32
5は怖いから4.8使ってる
30 :
デフォルトの名無しさん :2013/05/03(金) 13:34:14.65
>>28 メジャーバージョンが上がるとソースコード互換性はなくなります。
クラスなくなったのを除けば、たいていは両方で動くように書き分けるのは難しくはないです。
でもウィジェットは5.0は不安定で動きが間違っているのが目立つので、4.8の方が安心して使えます。
QMLを使うなら5の方がよいけれど、ウィジェットを使うなら5.2くらいになるまでは4.8の方がよいでしょうね。
31 :
デフォルトの名無しさん :2013/05/03(金) 16:22:35.27
>>24 Qt4でビルドできるようにしてからQt5でビルドできるようにしてみました。
QT += widgetsを.proに追加するだけでQt5でビルドできます。
32 :
デフォルトの名無しさん :2013/05/03(金) 18:50:50.65
A
33 :
24 :2013/05/03(金) 20:37:14.39
レスありがとうございます。
>>30 やはり互換性が無いのですね...
開発環境を4.8系、5.0系の両方を入れ、動作確認できるようにしたいと思います。
また、実際にアプリケーションを作成する際にはQML、ウィジェットのどちらを採用するかによって
バージョンを使い分けたいと思います。
>>31 取り急ぎ、Qt5.0.2での確認ですが、QT += widgetsを追加しても、
Requestでのエラーは回避できませんでした。
>Qt4でビルドできるようにしてからQt5でビルドできるようにしてみました。
というのは、他にも修正が必要なのでしょうか?
可能であれば、プロジェクトをUpして頂けると幸いです。
>>33 Requestは自分で作るんだよ
リンク先の最初の方に載ってるじゃないか
35 :
デフォルトの名無しさん :2013/05/03(金) 21:40:08.60
>>33 ウィジェットは、ソースコードで#ifdefで書き分けて、.proもバージョンで書き分ければ、
ほとんどをQt4とQt5の両方をひとつのソースコードにできます。
QMLはそういう書き分けがまったくできないという欠点があります。
importのバージン指定もまるっきり役に立たない。
36 :
24 :2013/05/03(金) 22:03:30.04
37 :
デフォルトの名無しさん :2013/05/04(土) 06:05:05.15
>>36 mainwindow.hでrequest.hをインクルードすればビルドできますよ。
QML使うならQt5を使った方がいいから書き分けられなくても実際にはデメリットにならないです。
38 :
24 :2013/05/04(土) 12:58:26.37
>>37 ありがとうございます!
ビルドおよび動作確認できました(Qt5.0.2)
大変、お騒がせいたしました。
ひとまず開発は5.0系で行い、サンプルコードを試す環境として4.8系も用意しておきたいと思います。
39 :
デフォルトの名無しさん :2013/05/07(火) 20:53:31.70
QTで作ったウィンドウをリサイズして、その終了時にイベント拾いたいのだけど、 なんかいい方法ないかな? リサイズ途中で毎回イベント拾うと処理が重くて…。
tes
マウスドラッグだったらボタンを離した(押してない)時だけ処理するとか
42 :
デフォルトの名無しさん :2013/05/09(木) 11:20:30.40
C++及びQt初心者ですが、 QGraphicsItemで円を描画できるようなものはありますか?
>>42 QGraphicsEllipseItem
44 :
デフォルトの名無しさん :2013/05/09(木) 11:46:36.42
QtおよびLinux初心者です。 Qt5.0でタッチパネルで操作するアプリケーション(ウィジェット)を作成したいのですが、 Qt5.0に対応したQt/Embeddedはリリースされていないのでしょうか? LinuxがインストールされたBOX PCに4.3インチLCDを接続し、アプリケーションを表示します。 知識が乏しく申し訳ないのですが、Qt/Embeddedは開発環境とターゲットの どちらに必要なものなのでしょうか? 宜しくお願い致します。
48 :
デフォルトの名無しさん :2013/05/12(日) 02:05:18.81
>>45 Qt5.0そのままで、クロス環境でビルドすれば、組込みLinuxで使えてタッチパネルを使えます。
Qt5ではQt/Embeddedに分ける必要がないので、Qt5に対応したQt/Embeddedはリリースされません。
マルチタッチもというならば、Qt側ドライバを作る必要があることが多いです。
WebKit外す必要はありません。
49 :
デフォルトの名無しさん :2013/05/12(日) 02:07:16.72
>>47 >とりあえずここ読まないと始まらないと思われ
Qt5はそこを読んでも役に立たないですよ。
>>49 あ、そうなんですかども
Qt5では専用の仕組み(QWSサーバがどうとか?)がなくなったってことすかね
51 :
デフォルトの名無しさん :2013/05/12(日) 09:53:33.13
52 :
45 :2013/05/13(月) 00:09:34.35
>>47-51 遅くなりましたが、みなさんレスありがとうございます。
自分で調べた限りでは「Qt5.0でのEmbedded」に関する情報が得られなかったので、大変参考になりました。
マルチタッチは必要としておりませんので、特に気にせずクロス環境でビルドしたいと思います。
テストできる環境が整い次第、実験したいと思います。
ありがとうございました!
53 :
デフォルトの名無しさん :2013/05/16(木) 08:47:04.53
Qfileでファイルの読み込みをしているけれど、 Linuxで動くコードがOSX(山ライオン)に持ってゆくとファイルが読めず、アプリが強制終了する。 そんな目にあわれた方いませんか。 俺のバグかQtのバグかわからない。Qtは4.8.5から5.02まで試したが同じ挙動ですた。
簡単な再現コードでもあれば誰か反応すると思うけどそれだけじゃなんとも
55 :
デフォルトの名無しさん :2013/05/19(日) 01:51:08.24
Qt creator 2.7.0でc++ソース内で日本語を使用するとビルドが通りません。 utf8では駄目なんでしょうか?
コンパイラはなに使ってんだよカス
Qt4か5かも書けよカス
ググれよカス
59 :
53 :2013/05/20(月) 11:44:23.76
>>54 こんなソースです。
QFile Data("Data.bin"); //set data file
Data.open(QIODevice::ReadOnly); //file open
HexData = Data.readAll(); //Read all data to Hex
Data.close();
Ubuntu Linux では動きますたがOSXだとファイルが読み出せないようです。
61 :
53 :2013/05/20(月) 13:19:34.15
OSXだと-1が返ってきます。 ファイルのパーミッションも見ましたが、 読み取り可能になっていますた。
置換ミスったが元に戻すことできねえオワタ
>>61 openの後でQFile::errorstring()を見れば
open失敗の原因が分かるかも
Qt for Tizen来たな
Qt4.8.4のminGWですが、Qtカスタムデザイナウィジェットで作成したウィジェットをQtcreatorのウィジェットボックスに表示させるにはどうすればいいてすか? ビルドでできた.dllと.aをQt??4.8.4??plugins??desingerに入れてみましたがでませんでした。
Qt Creatorをビルドしたコンパイラとカスタムウィジェットのコンパイラを合わせる
>>65 (qtcreator)/bin/designer にも出来たdllを入れる。
あと,入れるdllはリリースビルドしたものじゃないとダメ。
>Qt for Tizen来たな 誰も待ってないのに
>>66 >>67 ありがとうございます。
コンパイラを変えてdllも置いてみたのですができませんでした……。
ここはWindowsでQt使ってる奴等ばかりなのだろうけどQtの未来としては Linuxベースでスマホ分野の Tizen や Ubuntu や Android ports は非常に重要
71 :
デフォルトの名無しさん :2013/05/24(金) 05:52:52.56
Tizenはどうかねと思うな。
>>69 それは多分、どこか作り方が間違ってる。
ちょっとでも違うと表示されなくなるんで、以前苦労した覚えがあるよ。
domXml() の中身とか、良くチェックした方がいいと思う。
>>72 そうだったのですか……確かめてみます。
ありがとうございます。
74 :
デフォルトの名無しさん :2013/05/24(金) 21:53:11.42
>>73 ビルド済みのバイナリは使わずに、QtとQt Creatorをソースコードからビルドすれば、そういうことに悩まなくてすみますよ。
>>74 それはカスタムウィジットをウィジットボックスに表示させることと無関係だろ?
76 :
デフォルトの名無しさん :2013/05/25(土) 00:47:45.56
>>75 releaseとdebug、コンパイラを合わせるということができるから関係あり。
77 :
デフォルトの名無しさん :2013/05/25(土) 07:09:31.47
無理ヤリくさいこじつけ。 「ソースからビルドしろ」と書いてみたかっただけ。
78 :
デフォルトの名無しさん :2013/05/25(土) 19:43:18.53
そろそろmocなしでも使えるようになって欲しい
Windowsですが、小ウィンドウを親ウィンドウと連動して動くように開くにはどうしたらいいですか? childwindow = new ChildWindow(parentwindow); childwindow->show(); だと親ウィンドウの中に入れられてしまいます。 外に出た状態で ・親ウィンドウが動いたら子ウィンドウも連動して動く。 ・子ウィンドウは常に親ウィンドウの前面に表示(但しWindowStaysOnTopHintでは無い) にしたいです。
qwebview の linkclick シグナルを <A href=javascript:open_window('foo')> というリンクをクリックした際に発火させることは可能ですか。 javascript を文字列で取得したいです。 (そこから正規表現で URL を抽出 -> ゴニョゴニョ -> new page という処理を予定) qwebsetting や setLinkDelegationPolicy は設定されています。 代用可能な方法ならなんでもいいです。 click した位置の DOM を取得とか。 よろしくお願いします。
QMLはTypeScriptで作れるようにしてよ
カスの単発質問ばかりで有益な情報の無いスレだな
87 :
デフォルトの名無しさん :2013/06/03(月) 09:26:56.53
Qt SDKのダウンロードって qt-windows-opensource-1.4.0-x86-online-2013-05-30-73.exe をダウンロードすればよいんだっけか なんかサイトがかわってわかりにくくなったな
メインウインドウでプロセスを生成して、ダイアログからそのプロセスへ書き込みしたいんだがどう書けばよい? MainWindow.proc -> write("Hoge"); みたいな感じで書けないかな?
>>63 遅レスだがありがとう。それでQtCreatorから動かして見たらfile not found。
プログラムと同じディレクトリにデータ置いてるのになんでだろと思ったら、
OSXのプログラムの実物はその下の階層にあるんだな。
そこにデータを置いて実行したらデータ読み込んで動いたよ。
ありがとう。
90 :
88 :2013/06/04(火) 09:57:10.05
>>88 MainWindow().proc -> write("Hoge");
でコンパイルは通るが、実行させると、
QProcess: Destroyed while process is still running.
となる。プロセス殺さずにすまないかな。
別クラスのメンバへアクセスする方法が分からないって書いた方がいいんじゃね
92 :
デフォルトの名無しさん :2013/06/04(火) 14:44:48.53
なかなかのエスパー
Visual Studio2013が出るようだけど ビルド済みの配布はどうなるんだろう
それ以前に、VS2012から #pragma execution_character_set が使えなくなって、Qt5の日本語はお手上げ状態じゃね? C++11のunicodeリテラルは2013でも対応してないみたいだし
Qt4でOpenGLやってみてるのだが、bindTexture()で一発でテクスチャを登録できるのはわかった。 んで、自前でglTexImage2D()とかglTexSubImage2D()をコールしてみた場合はうまくいかないのだけど、普通にできてる人いる?
馬鹿には無理
普通にやってるよ 最初GLUTやwglで動かしてたコードを後でQtWidgetで動くようにしたからgl関数しか呼んでないな
98 :
95 :2013/06/07(金) 06:24:37.21
>>97 徹夜でやってたらできたわ。
迷惑かけたな、失礼した。
99 :
デフォルトの名無しさん :2013/06/07(金) 07:00:26.65
www
100 :
デフォルトの名無しさん :2013/06/08(土) 20:48:48.80
>>94 文字列はASCII、英語書いて翻訳すればいいから問題なし。
101 :
デフォルトの名無しさん :2013/06/08(土) 20:52:36.98
>>87 いいんじゃないか。
サイトが分かり難いのはオープンソース開発に避けるリソースがないからだよ。
ソースに日本語でコメント書く奴は死ね
もうそういう中二病は卒業してるんで
愛国無罪!
Qt使って社内システム組む場合、外部に売り出さない限りは商用ライセンスは不要って事でよろしいでしょうか? MS嫌いの上司の押しつけで C++Builder 漬けの状態から脱却したいんですが
よろしいでしょう
ありがとうございます。今度提案してみようと思います。
そんなレベルの知識で提案するのか
>>105 売り物にしたって条件さえ満たせば商用ライセンスじゃなくてもいい。
ちなみにウチは数年前にC++ BuilderからQtに乗り換えたよ。
一般向けのパッケージじゃなければ、LGPL版を動的リンクしてもついてくる リバースエンジニアリングフリーの制約も痛くも痒くもないしな
VCLに慣れてると、Qtのショボいプロパティ機能にはかなりストレス感じそう
>>111 いや、レイアウトが優れものなのでVCLが糞に思えてくる。
VCLが好きなら素直にC#+.netにしたほうが良いと思うんだが 宗教的理由なら仕方無いが
114 :
109 :2013/06/13(木) 05:39:14.50
>>110 だよね。
>>113 一般的にはそうだよね。ウチの場合は「標準」であるC++にこだわったからQtになったけど。
実際,それまでに作りためてあったクラスライブラリがちょっとの移植で使えたり,Boostが
利用できるのもウチにとってはメリットだった。
Qt Creator2.7.0でタブを押すとスペース4つになるのをタブ一つにする方法教えてください
それ無いっぽい俺もハードタブ対応してほしいわ
馬鹿には無理
>>115 qt-project.org/doc/qtcreator-2.7/creator-indenting-code.html
インデントの設定はC++、QML、その他のファイルで設定場所が分かれていて、
更にグローバルな設定とプロジェクト毎の設定とがあります。
以下はC++でインデントにタブを使用するグローバル設定の例。
ツール(T) → オプション(O) → C++ → 「コードスタイル」タブ↓
「コピー...」ボタン (新しいコードスタイル名の設定を求められるので適当に入力)↓
「編集...」ボタン↓
「概要」タブ↓
「タブ ポリシー」を「タブのみ」に変更。
「タブサイズ」と「インデントサイズ」を同じ値にする。
サンキュー
Qt4.8なんですが ネットから取得した画像をQPinmapのloadFromData→Qiconに変換しlistwidgetで表示しているんですが 画像の数が10〜20個なのにも関わらず仮想メモリの使用量が1GB以上になります(物理メモリは50MBほど) 取得する画像が変わることがあるので手動で更新をするのですが、何度かすると仮想メモリの使用量が爆発的に増えていき勝手に落ちてしまいます どのようにすればメモリ使用量を減らし、勝手に落ちることを防げるでしょうか?
タブの切り替え程度で神wなスレに期待するなw 何がメモリ食ってるかくらいいくらでも調べられるだろカス
Qt5 で QListWidgetItem のマウスオーバーを検知するにはどうするのが定石なんでしょうか? ui->listWidget->installEventFilter({mainWindow}); ui->listWidget->setMouseTracking(true); とか見よう見まねで実装してみたんですが フォーカスが左側に外れる瞬間とかよく分からないタイミングで QEvent::MouseMove が発動するようで、思いどおりの動作になりません。 ui->listWidget->setStyleSheet(":hover {background-color: #ddffdd;}"); 子の QListWidgetItem でも、こんな感じで指定できたら簡単なんですが
124 :
デフォルトの名無しさん :2013/06/18(火) 12:13:44.93
>>123 QListWidgetにsetAttribute(Qt::WA_Hover)して、イベントハンドラでHover*をひっかけてitemAt()。
Twitter用にQOAuth使おうと思ったんだがちゃんと<QtOAuth/QtOAuth>をincludeしてるのに undefined reference to `QOAuth::Interface::Interface(QObject*)' (他QOAuth::Interface系がいくつか) とエラー出てしまって進まない interface.hは「#include <QtCrypto>」を「#include <QtCrypto/QtCrypto>」に修正してる 最近QOAuth使った人どう書いたか教えてくれないか?
そうだね
Qt5.0.2で_CRT_SECURE_NO_WARNINGSを指定する方法を教えて下さい
>>127 そうなんだよ実は困ってるんだよ教えてくれよ頼むよ
初歩的なのかもしれないけど、検索しても情報出てこないし何が原因かわからんのよ
>>128 リロードしてなかったわorz
「CONFIG += oauth」は追加してある あと必要かわからんけどQTにnetworkとxmlも
検索して出てきたサイト通りに書いたけど他に書かなきゃいけないのあるのかな
>>129 configureの-Dとかmkspecsに追加するとか環境変数CL使うとか
qt5.1rc1でwebkitのビルドが通らなくなった。beta1の時は通ったのに!ちなみにwin32-msvc2010の64でね。qmakeでおかしなことになっているっぽい。qtに付属のgnu32が何か問題ありそうなんだけど誰か試した人いる?
Qtとかビルド通らないのが普通って感じだし
Mac/Qt5.0.2環境の Qt Creator に qwt-6.1.0 のpluginを組み込む方法を教えてください。 コード上での各種QwtWidgetの生成/実行はできているのですが、 デザイン画面上の部品パネルへの表示ができずにいます。要はポトペタがやりたいです。
QOAuth・・・
全クラスとmain()を1個のソースにまとめて書きたい。 c++でクラス毎にヘッダファイル1個ソースファイル1個って作ってかないとどこかで破綻する? qmakeちゃんと動く? 動かないとすればどういう条件の時?
やってみればいいだろ……
逆に何故破綻すると思ったのか 何故qmakeが動かないと思ったのか それが知りたい
そういう主張の人をwebで見つけたっていうのと、 実際にそれっぽい挙動に出会ったから。 質問としては致命的な事に、そのときのエラーコードやソースは失われてる。
確かqtcreatorの補完が、効かなくなったりしたような気がする
main()とMainWindowだけはそれぞれ単独で分けてる 他の部品レベルはまとめても大丈夫だったかな Q_OBJECTがマクロだから破綻してる?
なるほどなるほど。 とりあえず最大でヘッダ3個ソース3個なら何とかなるから、その線で書いてみよう。 ありがと!
どういたしまして main() のヘッダは要らないので ファイル 5 個で逝ける
145 :
デフォルトの名無しさん :2013/06/27(木) 16:28:19.69
スマホ向けのFirefoxOSっていうのが、ベースがTizenってかいてあったけど Qtと関係ある?
ソース全体が大きくなればコンパイルできない可能性も
TizenはMeeGoの後継プロジェクトなのは間違いないけどMeeGoのように Qtを根幹のフレームワークにしてない 元々MeeGoの元であるMoblinもMaemoもQtよりGTK色が強かったし (Androidとは違う)LinuxベースのモバイルOSという括りだと思う
俺=
>>137 ,
>>140 とりあえず破綻したminimalな例を一つ挙げとく。ソースの形は見苦しくて済まぬが2chうp用。
#include<QtGui>
//foo.h//
class Foo:public QObject{
Q_OBJECT
public: Foo(void); int value()const;
public slots: void setValue(int v);
signals: void valueChanged(int v);
private: int val;
};
//foo.cpp//
Foo::Foo(void) {}
int Foo::value()const {return val;}
void Foo::setValue(int v) {if(v!=val){val=v;emit valueChanged(v);}}
//main.cpp//
int main(int argc,char**argv){
Foo fooa,foob;
QObject::connect(&fooa,SIGNAL(valueChanged(int)),&foob,SLOT(setValue(int)));
}
3分割すると問題無い。1ファイルだと破綻。環境は qt4.8と2年くらい前のubuntu。
何も考えずに $ qmake -project;qmake;make
>>142 にもう一度感謝して寝ゆ。ありがとう。おやすみ。
むしろ一つにまとめるメリットが分からん
>>148 そのソースファイルがmain.cppだとしたら、次の行が必要。
#include "main.moc"
>>151 すでに、頭の方に入れて見たり一番最後に入れて見たり、いろいろ試して駄目だった記憶が。
もう一度深呼吸して試してみるかな。
QObjectの派生クラスの定義の後でmainの前が適当かな
再確認した。一番最後に入れて成功した。
拡張子抜きファイル名から作られるルールをどこかで勘違いしていた様子。
>>151 ありがとう!
今からじゃんじゃんもりもり書くぞー。
>>150 1つのファイルにまとめるのは極端な例だけど、ソースファイル上に局所的に使用する
単純なQObjectの派生クラスを定義したいことはある。
ヘッダーファイルに書けばシグナル・スロット・プロパティ等を記述した、コンパイルに
必要なmocファイルはqmakeで自動でリンクされるけど、ソースファイルに定義した場合は
手動でやるしかない。これに気付かないとハマる場合がある。
Qt5.1は喜ばしい限りだが本命はQt5.2だな Androidが正式にリリースされる予定だし、Ubuntuがmobile含めてQtに移行するマイルストーン
AndroidがポトペタでGUI作れるとか胸熱だな。
Qt5で connect(sender, &Sender::valueChanged, receiver, &Receiver::updateValue ); の形式が使えるようになったので、喜びいさんで使ってみたのですが、 QSpinBox の様に、引数の異なる複数のメソッドがある場合にコンパイルエラー になります。(VS2010) 引数型を指定してメソッドアドレスを取得するにはどう記述したらいいのでしょうか?
160 :
159 :2013/07/07(日) NY:AN:NY.AN
void (QSpinBox::*pf)(int) = &QSpinBox::valueChanged; connect(ui.spinBox, pf, this, &MainWindow::onValueChanged); と書けばコンパイル出来て、期待したように動作しているみたいなのですが、 2行に分けず、1行で書くにはどうしたらいいのでしょうか?
161 :
159 :2013/07/07(日) NY:AN:NY.AN
typedef void (QSpinBox::*FUNC)(int); connect(ui.spinBox, (FUNC)&QSpinBox::valueChanged, this, &MainWindow::onValueChanged); でも大丈夫でしたが、やっぱり1行にしたいです。
162 :
デフォルトの名無しさん :2013/07/07(日) NY:AN:NY.AN
163 :
159 :2013/07/07(日) NY:AN:NY.AN
connect(ui.spinBox, (void (QSpinBox::*)(int))&QSpinBox::valueChanged;, this, &MainWindow::onValueChanged); でおk
Qtってもしかして最強なんじゃね
安定さえすれば
いくつかの案件で連続稼動してるけど不安定だと思ったことは無いな
Qt5で何が変わった?
168 :
159 :2013/07/08(月) NY:AN:NY.AN
connect(sender, &Sender::valueChanged, receiver, &Receiver::updateValue ); の形式が使えるようになった ラムダ式もスロットに使えるようになった
169 :
デフォルトの名無しさん :2013/07/13(土) NY:AN:NY.AN
プログラムの起動時にShiftキーが押されていたら、 設定ファイルを読み込まずにデフォルト設定で立ち上がる、 みたいなことをしたいんだけど、Win32APIだと、 if ((GetAsyncKeyState(VK_SHIFT) & 0x8000) == 0) { QSettings settings; ... } とかするわけですが、プラットフォームに依存しないで、 Qtだけで非同期キースキャンを行う方法はあるでしょうか?
32bit,OpenGL,VS2012の組みあわせは配布されてないのか コンパイルめんどくさいな
171 :
デフォルトの名無しさん :2013/07/21(日) NY:AN:NY.AN
>>169 QApplication::queryKeyboardModifiers()
172 :
169 :2013/07/21(日) NY:AN:NY.AN
QPainterで複数の円を描いて円の上にマウスカーソルを乗せると どの円の上にカーソルが乗っているか分かるってのを書きたいんだけど、 お手軽にできる方法とか座標が円の中に含まれるかどうか判断する関数ってある? OpenGLだとマウスピッキングとか使ってできたんだけど地道に書くしかないかな
174 :
デフォルトの名無しさん :2013/07/25(木) NY:AN:NY.AN
あります
bknhmr
176 :
デフォルトの名無しさん :2013/07/25(木) NY:AN:NY.AN
177 :
デフォルトの名無しさん :2013/07/26(金) NY:AN:NY.AN
QGraphicsScene を使うのが簡単でいいんじゃない?
>>176 ,177
サンクス
どっちも使ったことないのでググってきます
179 :
デフォルトの名無しさん :2013/07/27(土) NY:AN:NY.AN
マンコできゅきゅっとしてぇ〜な〜(;´ロ`)
NOKIAが手放して悲観論ばかりだったが、ここにきてGTK→Qtに移行するプロジェクトが異常に多い 日陰者暮しが長かったせいか、最近の動きは少し居心地が悪い。もちろん良い意味で
181 :
デフォルトの名無しさん :2013/07/28(日) NY:AN:NY.AN
182 :
デフォルトの名無しさん :2013/07/28(日) NY:AN:NY.AN
悲観論はなかったよ。Nokiaが手放してAndroidやiOSのサポートされるしSymbianのコードが削除されるなどいいことばかりだっ た。
俺にはQt大勝利の未来しか見えない 機は熟しつつある
結局人々はC++に戻ってくるし、 そこに全プラットフォーム対応のツールキットがあるYOと言われれば 最早結果は核爆発を見るより明らかではないか。
185 :
デフォルトの名無しさん :2013/07/28(日) NY:AN:NY.AN
Dの立場は
線香花火はすっこんでろ
187 :
デフォルトの名無しさん :2013/07/28(日) NY:AN:NY.AN
Dって、D言語か?あんなもん使うや奴いるのか? ガベージコレクションのある言語なんて氏ねばいい。
そういいながらスマートポインタ使うんですけどね
スマートポインタを使う俺らって実にスマートだよな
キッシュでも食ってろ
スマポは甘え
だが使うべき時に使わないのは知能退行
bazaar.launchpad.net/~phablet-team/webbrowser-app/trunk/view/head:/src/Ubuntu/Components/Extras/Browser/Browser.qml そこで qml ですよ 環境整備とかそれ普及するんですかねとか言うな生え際退行 でも何かこれ漢のロマンっぽさがすごいです…
他人にポインタの解放を期待するよりスマポを使う方がよい設計 チーム開発しない趣味人ならナマポでもなんでも好きにすれば?
ヌルポ
Qtを勉強したいのですが Qt Projectには多くのリストがあるので、どれをインストールすれば良いですか? OSはWindowsXPです。 まず Qt5.1 or 4.8 ? MinGW or VS2010 ではどんなメリット、デメリットがあるんですか?
>>197 よくわからないならVS2010でいいよ
今から勉強するならQt5がいいと思うけど
本とかはまだQt5に対応してないだろうからそこは注意かな
そんなに変わってないけどね
199 :
デフォルトの名無しさん :2013/07/30(火) NY:AN:NY.AN
VS2010 のIDEに慣れているなら、VS2010 に Qt Add-in を入れることを薦める。 QtCreator の使い方を新たに覚える必要がなくなる。
200 :
197 :2013/07/30(火) NY:AN:NY.AN
198、199さま ありがとうございます。 MinGWでプログラムを書いて、別のPCで動かす場合は、動かすPCにもMinGWが 必要になるんでしょうか?
>>200 何個かDLLを追加するだけ
SDKの中に入ってる
C++なんで実行時には対応するruntime libraryが必要。MinGWでは、MinGW用のruntimeを VS2010で作った場合は、Microsoft Visual C++ 2010 再頒布可能パッケージを入れること。 個人的には、新しくQtを勉強するなら、Qt5.1でMSVC2012。 XP等の古いOSにも対応したいなら、Qt4.8でMSVC2008が良いと思う。
203 :
200 :2013/07/30(火) NY:AN:NY.AN
分かりました。 みなさま、ありがとうございます。
ずっとMSVC使ってるがC++11を考えたらminGWの方が良いのかもって気にもなる
205 :
デフォルトの名無しさん :2013/07/31(水) NY:AN:NY.AN
C++11 対応してても Qt で使えなかったら意味なさげ
あれ4.8ぐらいから対応し始めてるんじゃなかったっけ? つかそもそも自分で書く部分は自由に使えるんだし意味ないってのは無いわ
ソース互換じゃないQtなんて・・・
Qt上で使用するという前提でC++11で使いたいものって何かな。 lambda関数は使いたいかな。 Qt5でSIGNAL/SLOTを関数ポインタでもconnectできるようにしたのは、この為でもあるし。 スマートポインタは、QSharedPointer/QWeakPointer を使ったほうがいいだろうし、 後はautoくらいかな。
ムーブとか初期化リストとかrange-based for とかconstexprとか 地味に便利なの増えたよねC++11
インテリセンスが無いと書けない体になってしまったんだが minGW+QtcreatorってVS2012と比べてインテリセンスの性能は良いの?
Qt5.1+minGWで、コンソールアプリを作ってるんですが、 iostreamの、cout >>は使えないですか?
矢印の方向が cout << じゃなかった? ストリーム使わないからおぼろげだけど
213 :
デフォルトの名無しさん :2013/08/04(日) NY:AN:NY.AN
std::cout << が正解だね
>>212 VS2012は日常的に使わんから知らんが、俺の体感だと2008よりは反応が重く、
2010よりは軽い。VSみたいに壊れて反応しなくなることはない
目立って違うのは、ヘッダの依存関係をしっかり見てるからインクルードしていないものは補完されないのと
ポインタもドットで補完できるところくらいか。手が止まった時はF2かドットでOK。あとは自分で試してくれ
ネイティブC++に限れば、補完はVSよりQtCreatorのほうが数段上
>> 212 >> 213 う、 そうでした。 ありがとうございます。
>>211 使って悪いわけじゃないが、Qtでは QTextStream(stdin) を使うべきだと思う。
QString str;
QTextStream out(stdout);
out << str;
質問です。 linux mint15 環境で使っているのですが、gitの設定がよくわかりません。 linux環境でqtによる git設定が詳しいサイトどこかにありませんか? パッケージマネージャを確認する限り組み込まれています。 プロジェクト作成時に、選択も可能です。 しかし、ソースのコミットを行った際、エラー表記されて出来ません。 (また、それ以前にリポジトリ作成位置もよくわかりません。) よろしくお願いします。
エラーメッセージを貼れ
git init 汁
あとはメアドと名前を登録してないとか
> (また、それ以前にリポジトリ作成位置もよくわかりません。)
224 :
218 :2013/08/05(月) NY:AN:NY.AN
>>222 ありがとう。メアド登録ミスってました。
再登録で出来ました。
>>221 新規作成でなく
qtが自動で用意してくれたリポジトリの場所が知りたかった。
意図が伝わりにい文章で申し訳ない。
で、今気づいたのですが、
(プログラムフォルダ)/.git が隠しで居ますが、
これがローカルリポジトリ本体ですかね?
(それともこれはsvnみたいな単なるフォルダ管理用ファイルなのかな、、。)
>>219 確かに(−−;
ローカルリポジトリ? とりあえずgitコマンドで一通りの機能が使えるようになってから IDEのGitプラグインを試した方がいいと思うよ
226 :
218 :2013/08/05(月) NY:AN:NY.AN
>>225 レポジトリをバックアップとして、別の場所にコピーするのが目的です。
別PCにローカルリポジトリをコピーしとけば、保険になるかなと、、、・
ちなみにGit サーバーは用意する予定はありません。
gitはとりあえず、使いながら憶える予定。
普段TortoiseSVNしか使ってないので、派生の有効活用する作成作業が
思いつかないですが(==;
馬鹿には無理
>>227 もー。
ネットの中だけは辛口なんだからあ
(−▽−ノ
229 :
デフォルトの名無しさん :2013/08/05(月) NY:AN:NY.AN ID:MvjWk5/8!
DropBoxにjitのリポ作ると快適。
>>229 そのやり方楽だけど、
リポジトリが何かの原因で壊れたら、
壊れた情報そのまま同期ちゃいますぜ。
working tree壊すならともかく、repository壊すようなら、 gitに限らず全てのVCSには参加するなと言いたい
>>231 リスク考慮してバックアップしてるんだから、
repository自体壊れるリスクも考慮するべきでしょ。
git操作以外の別の作業中、壊れる可能性もあるんだし。
たとえば、別のレポジトリフォルダを間違えて上書きで置いちゃうとか。
まあ、壊すやつは、参加するなっていう考えには賛同するよ
(TーT
233 :
デフォルトの名無しさん :2013/08/08(木) NY:AN:NY.AN
QTableWidgetで、エンターキーを押したら、編集を開始したいです。 eventFilterで、QKeyEventを処理して、QTableWidget::editコールという作りにしたところ、 QTableWidgetが既に編集中かどうかを判定できないです。orz
Qt::ItemFlags QTableWidgetItem::flags() で選択状態のitemの状態を見るんじゃないか
質問。 Linux 環境で、 FindWindowやSendMessageみたいな命令をQTで行いたいのですが、可能ですか? Windowと違うから根本的に無理なのでしょうか?
236 :
デフォルトの名無しさん :2013/08/09(金) NY:AN:NY.AN
>>235 可能です。
Linuxの方がWindowsよりもはるかなまともなので根本的に無理ではありません。
237 :
デフォルトの名無しさん :2013/08/09(金) NY:AN:NY.AN
>>233 そんな変な操作にするは根本的に間違いでやってはならないことだ。編集の確定はどうするんだい。
238 :
デフォルトの名無しさん :2013/08/09(金) NY:AN:NY.AN ID:NNzCl3Jk!
Android版のQtのソース互換性はどのくらいなの? PC用に作ったプログラムをそのままAndroidで動かしたいけど、 プルダウンメニューとかどうなるの?
239 :
235 :2013/08/09(金) NY:AN:NY.AN
>239 漏れは、通りがかりの素人ですが、 入力欄を特定するのに、動いているプログラムのプロセスID、画面ID、 入力欄のコントロールIDなどが、必要なのでは?
241 :
235 :2013/08/10(土) NY:AN:NY.AN
>>240 window系のプログラムなら、
プロセスIDは、プログラムタイトルをFindWindowで、
画面IDとコントロールIDはVS付属のspy++を使うことにより取得が可能です。
そのような事を含めた上で、
linuxでは、どのようにすれば、いいのかが知りたいです。
242 :
240 :2013/08/10(土) NY:AN:NY.AN
「ふつうのLinuxプログラミング」、2011 今、この本を読んでますが、Gtk+やQtは、 X Window SystemのXプロトコルをラップする、 Cのライブラリ、Xlibを使っているようです 最新のAPIは、本に載っていないので、ネットで調べるしかないようです
243 :
240 :2013/08/10(土) NY:AN:NY.AN
FireFoxか、Xlibが、その画面や入力欄にアクセスする、APIを持っていますか? なければ、スパイツールか何かで、画面や入力欄にアクセスする?
QtにはD-bus関連のクラスがあるけど、相手側がD-bus用いていればプロセス間通信とか制御ができる。 例えばKDEのJukを起動した状態で qdbus org.kde.juk /Search setSearchText "aaa" て、コマンド打てばJukの検索文字列をaaaに設定できる。 因みにqdbusは端末から任意のD-bus操作ができるコマンド。
245 :
デフォルトの名無しさん :2013/08/10(土) NY:AN:NY.AN
>>238 > Android版のQtのソース互換性はどのくらいなの?
ほとんどそのまま動く
ただし、ピンチなどのタッチ操作は別途記述を追加する必要がある
また、通常マウスカーソルが表示されないので、UIを変える必要もある
> PC用に作ったプログラムをそのままAndroidで動かしたいけど、
そのままだと通常使い物にならないよ
> プルダウンメニューとかどうなるの?
右下の|みたいなアイコンを押すと、プルダウンメニューが表示される
>>243 x自体のウィジェットIDが欲しいならxpropかxwininfoあたりのソース見ればいい
Firefox内のウィジェットのIDがほしいなら拡張を作成する
247 :
235 :2013/08/11(日) NY:AN:NY.AN
>>242 ,243,244,246
情報ありがとうございます。
246の情報で、Window idの取得はどうにかなりますね。
今は、テキストボックスのid?を調べる方法、次にそこに文字列を入れ込む方法で悩み中です。
xwininfoのオプション指定でテキストボックスの情報が取得出来ないか
色々やってみましたか駄目で、window側でSPY++で
試してみましたが、そちら側でも無理でした。
fireFoxのアドオンなので、通常のテキストボックスと違うのかもしれません、、。
windows idだけは取得可能ですが、それだけだと
ダイアログにキーダウンイベント送るくらいしか使えませんよね(予想)
手動で「ファイルの保存先」にフォーカス当てて、
文字列一個一個をキーダウンで送り込めばいけるかもしれませんが、、。
248 :
235 :2013/08/11(日) NY:AN:NY.AN
>>244 D-busのプロセス間通信だと、受信側に仕込みが存在し、
また、その仕込みの情報が公開されてないと
無理そうな気がしているのですが
今回の場合(他人が作ったアドオン)でも可能なのでしょうか?
=============
思ったより難易度が高いので
上記とは違う解決方法も考えています。
firefoxの"about:config"extensions.dta.directoryに
ダウンロード保存先パス履歴が記録されているのでその部分を
プログラムで書き換えてしまうやり方です。
(軽く調べてただけの段階ですが、)これに関しても情報がほとんど見つかりません。
何か知っていればよろしくお願いします。
また、別手段があればアドバイスお願いします。
>>241 Qt以前にLinuxというかXの基本をちょっとは勉強したら?
ウィンドウのプロセスID取得なんて基礎中の基礎だから
フォーカス制御してinputデバイスに入力してやればなんだって出来るだろ
251 :
235 :2013/08/11(日) NY:AN:NY.AN
>>250 コントロール名称の取得が出来ない事から
自分はこのダイアログ画面は(あくまで予想ですが、)
外枠はともかく、ダイアログ内の中身はFireFoxのによる独自の描画では無いかと考えています。
(どのOSでも動くように作られているからアドオン側が
各OSのコントロールを直接使っている事自体考えにくいですし)
もしそうであった場合、
MozillaWindowClass側のクラスで何らかのインターフェイスが必要を用意してくれていないと
ダイアログ画面全体に対しては、何らかのメッセージは送れるかもしれませんが、
その画面上の特定のコントロールに対して処理を行うのは無理です。
そのため、通常の方法で特定コントロールへのフォーカス操作できない気がしているます。
自分が勉強不足による勘違いであればいいんですが、、。
>>249 すみません。Linuxは、ホント最近初めたばかりなのでXを含め勉強中です(−−;
そうじゃなくて、仮想マウスクリックと仮想キー入力でなんでも出来るでしょってこと Xなら当たり前の技
どういうことがしたいのか知らないけど DownThemAll 自体を改造したほうが楽なんじゃないの?w URL使って機能実現するようにして、QtからはそのURLで開くだけとか
ここまで読んでQtが全く関係ないことに気付いた
Qt Creator2.7.2ですが、インデントタブは空白になってるようなんですが これを通常のタブにできないんですか?
ヘルプ読め池沼 つうかテキトーに探してもすぐ見つかるだろカス
257 :
235 :2013/08/12(月) NY:AN:NY.AN
>>250 ,252
247で書いてる
>>手動で「ファイルの保存先」にフォーカス当てて、
>>文字列一個一個をキーダウンで送り込めばいけるかもしれませんが、、。
がその事書いてるつもりなのですが、わかりずらくてすみません。
ちなみにwindows系でも、他プロセスのウィンド操作では結構普通に使いますよ。
この方法の問題点は、フォーカス設定です。
何度も書いてますが、fireFoxアドオンは、
コントロールID指定でフォーカス合わせる手段が見つかりません。
後、他によくある手段で、
TABを数回決め打ちで送りフォーカス合わせるような事も考えましたが、
入力欄の開始位置は前回状況によって変わるので、それも出来ません。
もしこの方法でを用いるのなら、入力フォーカスをいちいち手で
当てる運用なので、もう少し楽な運用にしたい。
>>253 DownThemAllのソースって公開されてませんかね(−−;
保存された、DownThemAllのファイルのぞいたけど、バイナリでした。
>>254 ごめんなさい。
258 :
235 :2013/08/12(月) NY:AN:NY.AN
正直昨日今日はリアルが忙しかったので全然検証出来ていませんが、 だいたいの実現可能な方法が見えてきました。 QTプログラム-> 何らかの方法で受渡(D-bus?最悪ファイル渡し) ->自作FireFoxアドオン ->about:Config書込->DownThemAll でとりあえず作ってみます。 無理そうなら次点でキーダウン+クリップボード。 色々アドバイスありがとうございました。 (−▽−ノ
だから、仮想マウスクリック… 人間がやってることをそのままやればいいでしょ
261 :
235 :2013/08/12(月) NY:AN:NY.AN
>>260 ゴメン。仮想マウスクリックでフォーカス当てろってことね。
今更ながら気づいたよ。そのやり方の方がはるかに楽だ。
(−−;
情報ありがとう。
(゚-゚;)ウーン、と考えた結果、
とりあえず両方対応でやってみます。
DownThemAll画面が画面上存在するときとは、仮想マウス+仮想キー。
無い場合は、about:Config書込で。
では(=▽=ノ
>>257 DownThemAll 公式サイトにリポジトリあるじゃん…
263 :
235 :2013/08/13(火) NY:AN:NY.AN
>>262 ありがとう。全然気づいてませんでした。
マジで、だめだめですね自分。(−_−;
とりあえず、ソース落として読んでますが、
アドオン作成入門サイト読み始めたばかりの自分にはほとんど、わからん。
まあ、いじるとしたらGUI側のソースを(どう多く見積もっても)100行以下の改造で済むと思うし、
javascriptだからどうにかなるとは思うんですが、、。
お盆休み期間中、楽しめそうだぜ (((o(*゚▽゚*)o)))
もし、これ出来るんなら、下記の手順で対応します。。
QTプログラム-> 何らかの方法で受渡(D-bus?最悪ファイル渡し) ->(改造版)DownThemAll
後、QTから外れた話ばっかしてすみません。
しばらくROMりますね。
WindowsXPにQt5.1.0+minGWで作ったアプリを、別のWindowsXPのマシンに配布して 実行したところ、Visual C++ Runtime Library Run Time error!とのエラー が出ます。具体的はファイル名等が無いのですが、 何を持ってくればよいのでしょうか?
265 :
デフォルトの名無しさん :2013/08/13(火) NY:AN:NY.AN
VS2010版でビルドした場合は、 msvcp100.dll, msvcr100.dll を配布するとOKなんだ、 minGW なんだよね?
266 :
デフォルトの名無しさん :2013/08/13(火) NY:AN:NY.AN
QDateTimeをdoubleにする方法を教えて下さいorz
>>266 フォーマット書式 書かないと誰も答えられないよ。
それ以前に、これだけ時間経ったなら、
さすがに自己解決済みと思いますが。
268 :
266 :2013/08/14(水) NY:AN:NY.AN
>フォーマット書式 インプットは、 >QDateTime dt = QDateTime::currentDateTime(); といった値です。 アウトプットは、 >double型 です。
double型の単位は何だよ UnixTimeなのか、msecなのか
270 :
266 :2013/08/14(水) NY:AN:NY.AN
あ、勝手にある年から一律時間と思っていましたが、
UnixTimeというのとtimestamp型というのと、大きく2つに分かれるわけですね。
希望は、将来に問題無いtimestampです。
msecまで把握できなくてもsecまででOKだったりしますが。
でも、Linuxプログラム、Winプログラムから逆算可能なもの、です。
昔、DelphiのTDateTime型と、VC++(もしくは、MDBの日付型)と、ホンノ少し補正値がいった記憶があり、そういうのは怖いなと思いました。
調べてみると、
>
http://qt-project.org/doc/note_revisions/35/57/view Julian Dateってのがあるんですね?_?
昨日見たときは、ジュリアン氏の関数かと思ったw
271 :
266 :2013/08/14(水) NY:AN:NY.AN
連投すみません: ・QDateTimeの内部の持ち方が知りたいです。(ソースは印刷したのですが。。。) ・Julian Dateっていうのは、システム的には一般的とは言えないですよね? ・ググってると、 >DATETIME型 1000-01-01 00:00:00〜9999-12-31 23:59:59 >TIMESTAMP型 1970-01-01 00:00:00〜2037年の一定の時点 というのがありましたが、これらが一般的ですよね?
272 :
266 :2013/08/14(水) NY:AN:NY.AN
さらに連投: ・Julian Dateからunixタイムスタンプに変換する記述は見つけましたが、Julian Dateは、時間の比較ができないからNGです ・ググると、DATETIME型とTIMESTAMP型の選択には根深い問題があるんですね。。。 ・QDateTime同士の前後を把握したいので、QDateTime::ToDoubleライクなメソッドが欲しいのですが、どう記述すれば良いのでしょう?_?
273 :
266 :2013/08/14(水) NY:AN:NY.AN
最後の連投: 過去ログから、 >QDateTime::toTime_t を見つけました。 ググっても過去ログしか出てこないなんて、結構マイナー? >toTime_t って名前からすると、やはり2037年問題でアウトなんでしょうか?_? QDateTimeの前後比較はtoTime_tでやってしまおうかと思いますが、 保存データに使う分には足りないイメージですねorz
toStringで時刻を整形して 20130814135000 の文字列からtoDoubleで数値へ変換
QDateTime同士の前後を把握するのにdoubleに変換する理由が想像できない
slider0はarray[0]の値を、slider1はarray[1]の値を操作する って感じにしたいんだけど connect文や値を変更するslots関数を要素の数だけ書く方法しか思いつかない なんか良い書き方ってある? GUIはdesigner使って作ってます。
>>272 QDateTime a,b;
if(a > b) { ...
>>277 QSignalMapper
>>278 これでできそうです!
ありがとうございました。
>>277 >>279 #include <QVariant>
QString propName = "number";
スライダにダイナミックプロパティで値を設定。
slider0->setProperty(propName, 0)
slider1->setProperty(propName, 1)
...
スロットで、
int number = sender()->property(propName).toInt();
281 :
272 :2013/08/19(月) NY:AN:NY.AN
282 :
デフォルトの名無しさん :2013/08/20(火) NY:AN:NY.AN
>QtSingleApplication って、別途ライブラリ要るんでつねorz
283 :
デフォルトの名無しさん :2013/08/20(火) NY:AN:NY.AN
QTableWidgetに値を設定するときの、 newしたQTableWidgetItemをdeleteする必用は無いのでしょうか? どのサンプルを見ても、newのみなんですが?_? ついでに、QTableWidgetの入出力を簡単にする派生クラスとか関数群があれば欲しいですorz
284 :
デフォルトの名無しさん :2013/08/20(火) NY:AN:NY.AN
Q_OBJECT のおかげですしおすし
>>283 newするときに親widgetを引数で渡したら、親が削除されるときに子も削除される。たぶん
デバッグしてて気づいたんだが終了時に
:0: エラー: Exception at 0x76c8c41f, code: 0xd: , flags=0x1 (execution cannot be continued) (first chance)
こんなん出るんだがどゆこと?気にしなくていいのかな
>>283 The table takes ownership of the item.
287 :
デフォルトの名無しさん :2013/08/20(火) NY:AN:NY.AN
>>284 QTableWidgetItemはQObjectではない。
QTableWidgetが設定したQTableWidgetItemを消すように作られている。
288 :
283 :2013/08/21(水) NY:AN:NY.AN
>QTableWidgetが設定したQTableWidgetItemを消す なるほど、有難うございました。 もし良ければ、どのタイミングで消されるのか、も教えて頂きたいです。 というのは、QTableWidgetの外で、QTableWidgetItemをnewしまくって、 同じX、Yにセットしまくっても、OKなのか知りたいです。 ソース読むのが正しいのでしょうが、先に正解を知っておきたいです。
>>288 The table takes ownership of the item. とリファレンスに書かれていれば設定すると前のは消される。
QTableWidget は使うのは簡単。しかし、アイテムを抱えるのとモデルをプライベートに持ってカスタマイズしたものと入れ替えられないので
QTableView を使うようにした方が先々困らない。QTableWidget を使うとほとんどどこかで破綻する。
290 :
283 :2013/08/21(水) NY:AN:NY.AN
>設定すると前のは消される。 ヲォ、これで安心して使えます。有難うございました。 >QTableWidget を使うとほとんどどこかで破綻する。 何と!!!orz
日本語の書籍とか揃ってるしQt4から入ってQt5に移行しようと思ってるんだけど、4から5ってスムーズに移行できる?
292 :
デフォルトの名無しさん :2013/08/22(木) NY:AN:NY.AN
>>291 > 日本語の書籍とか揃ってるしQt4から入ってQt5に移行しようと思ってるんだけど、4から5ってスムーズに移行できる?
Widget プログラムしかやってないけど、比較的スムース。
ソースの互換性も高い。
ただ、IMEの周りの仕様が変更されているのがいたい
293 :
デフォルトの名無しさん :2013/08/22(木) NY:AN:NY.AN
>QLineEdit >QTableWidget これらで、入力が変更されたかどうか、判定する方法はあるのでしょうか? データの一致まで判断したいわけではなく、手で一旦イジラレタかどうかを判定したいのです。
>>292 thx
一旦Qt4でQtに慣れることにする
>Qtに慣れる Qtのレイアウトマネージャ大変。WinのIDEにバグもあったり(><)
>>293 QLIneEditとQTableWidgetのどちらもドキュメントを読むとすぐに分かる。
Android用Qtでシェルコマンドを呼び出すQtアプリを作っているがうまく動かない。 MinistroにQtprocessって実装されてるの?
Qt4系とQt5系は一緒にインストールできるんですね。MinGW版だと簡単だし
VS版も
http://naohiro7.hatenablog.com/entry/2013/03/14/011704 ←これをみると
簡単にできそうです。
オライリーの本とかはQt4系なので、そっちで勉強して
QtQuickの本はQt5なので、そっちでやってみようかな。
私はQtとPerlが好きであとJavaScriptも好きです。金儲けに縁が遠いものばかりです。
QtQuickのは簡単そうなのでやってみたいです。2600円もしますが。C++自体もすごい深くて好きです。
ブログでやってろよw
301 :
デフォルトの名無しさん :2013/08/24(土) NY:AN:NY.AN
Qtってlispで使えますか?
馬鹿Lisperには無理
DockWidgetをフローティング状態ににすると、 メインウィンドウをクリックし直すまでフォーカスはDockWidgetに合てるんだけど この状態でメインウィンドウのkeyPressEventに反応させる方法ってある?
ある 簡単 方法は自分で調べろ小僧
方法はひとつじゃないからな ひとつ見つけたからってそこで満足してたら成長しないぞ小僧
邪魔だぞおっさん
308 :
デフォルトの名無しさん :2013/08/26(月) NY:AN:NY.AN
QTableWidgetって、 セル単位で色づけできますでしょうか?
>>308 QTableWidgetItem::setBackground(const QBrush & brush)
310 :
308 :2013/08/27(火) NY:AN:NY.AN
つ d アイテムにメソッドがありましたか。アイテムがセルになりますもんね。
adobeソフトとかである数値を左右にドラッグしたら増減して クリックしたら直接入力できるGUIってQtの機能じゃないよな?
Qtのライブラリって、例外クラスもあるのかなぁ。 QException、みたいな。
プロジェクトフォルダ内のファイルをバックアップしておいて、元に戻すために 入替えしたところ、Desinerの内容が反映されなくなってしまいました。 Degugフォルダの内容も全て削除して、ビルドしてもダメでした。 どうすればいいんでしょうか?
ui_hogehoge.hが残ってるとか
315 :
313 :2013/08/28(水) NY:AN:NY.AN
>314 なるほど、こんなものがあったのか ありがとうございます。
う〜ん QML のシングルトン型の登録ががどうにもうまくいかない qmlRegisterType<TestObject>("TestLib", 1, 0, "TestObject"); とすると、TestLib も import できるし、TestObjectも QML から見れるのだけど qmlRegisterSingletonType<TestObject>("TestLib", 1, 0, "TestObject", provider); とすると、TestLib も TestObject も QML からは見れないし、provider コールバック関数も呼ばれている様子はない TestObjectは単純に、QObjectを継承しただけの型だし、provider も static QObject* provider(QQmlEngine* engine, QJSEngine* scriptEngine) { Q_UNUSED(engine) Q_UNUSED(scriptEngine) TestObject *object = new TestObject(); return object; } というようなもの 何かどこか間違えているのかなぁ
317 :
デフォルトの名無しさん :2013/08/28(水) NY:AN:NY.AN
Qtもさぁ、最初の初心者のうちは楽しかったんだけどさー。 オライリーのやつやってるうちに他の言語と同様退屈になってきた。
Qt云々じゃなくてプログラマの資質が無いのでは?
退屈とか楽しいとか...言えるだけいいよなぁ。
手段であって目的じゃないんだから楽しいもくそもないわな
目的と納期が決まってて最短でやろうとするとQtに限らずイライラすんね こういうのは回り道しながらできることを広げながらやった方が楽しい
>>311 スライダーとスピンボックス並べて連携すればいいんでないの?
>>322 それしてるんだけど幅取るしできたら嬉しいんだけどな
スライダーもdouble型使えないの一手間面倒だとかあるし
324 :
デフォルトの名無しさん :2013/08/30(金) NY:AN:NY.AN
QTabWidgetで、 タブが切り替わる前のシグナルって無いですよね? 派生でシグナル足せるんでしょうか?
focusを失うシグナルは来るんじゃないかな
有難うございます。 「スロットへ移動」メニューでは出てこないのですが?_?
327 :
デフォルトの名無しさん :2013/08/30(金) NY:AN:NY.AN
みなさんお世話になりました 明日で2ch終了らしいので 今のうちに最後のご挨拶をしておきます
emitのときにメモリとかオブジェクトを排他したり破棄したりするから、QByteArrayを使わなきゃならない、なんて話はありますか?
QSpinBoxでテキスト入力のみReadOnlyにする方法を教えて下さいorz
>>329 サブクラス化してlineEdit()->setReadOnly(true)を呼ぶか、
QSpinBox* spinBox = new QSpinBox;
QLineEdit* lineEdit = qobject_cast<QLineEdit*>(spinBox->findChild<QLineEdit*>());
if (lineEdit) lineEdit->setReadOnly(true);
332 :
デフォルトの名無しさん :2013/08/30(金) NY:AN:NY.AN
333 :
322 :2013/08/30(金) NY:AN:NY.AN
俺ならQLineEditを継承させて、mousePressEvent,mouseMoveEvent,mouseReleaseEvent拾って 自分で作るかな
>>333 あーなるほどそういうのも面白いな
>>334 結局そうなるか
お手軽にできたら良いのにって思ったけど
一度作れば使いまわせるんだから作れってことだな
Qt5のQInputMethodQueryEventの使い方を教えてください
お湯につけて三分待ちます
338 :
デフォルトの名無しさん :2013/09/01(日) 11:24:23.74
QtQuickもコマンドプロンプトで開発できるようにして欲しいです。 低スペックパソコンだとIDEについていけない・・
いや出来るだろ普通に
>>338 EmacsにQMLモード入れて開発している。
341 :
338 :2013/09/01(日) 22:07:34.34
>>339 できるんですか!?
>>340 私はWindowsXPなので・・・
なんか、今日、QtQuickの本見てきたら、WindowsXPはサポートしてないみたいなことかいてた・・
どうやってググッても見つからないんで、ヒントだけでもくれればありがたいです。
ググって調べますんで・・
暇な人でけっこうです。
すげぇ・・・ 質問に答えられなくなると、OSを入れ替えろとは・・・
そのOSサポート切れなんで
お金を払えばサポートして貰えるようになったよ!やったね!
>>342 は金いらねえだろっていってるんだから、Linuxにでも乗り換えろという意味かね(´ω`)
とうとうノキアがマイロソフトに買収されたか Qtにとって当時世界携帯シェアの40%超の会社に組込まれたことが 大きな転機となったことは間違い無い 感慨深いな
ノキアの端末事業
さらばノキア。Qtは新しい会社で元気にやってるよ 社名覚えてないけど
350 :
デフォルトの名無しさん :2013/09/04(水) 15:17:48.94
上の方に会社のリンクあると思ったけど見つからないな
Windows Q
一般ユーザで実行した時とsudoで実行した時でGUIの見た目が変わってしまうのですが何が原因でしょうか? Ubuntu12.04、Qt4です
>>353 QApplicaionのインスタンス生成時にデスクトップ環境が何かを判断してスタイルを決めているため。
いろいろ判定をしていて、Ubuntuなら環境変数GNOME_DESKTOP_SESSION_IDが空でなければQtのGTK+スタイルが使われる。
一般ユーザではこの環境変数が設定されているのでGTK+スタイルが使われる。
ルートになると設定されていないのでWindowsクラシックスタイルが使われる。
>>353 ${HOME}/.config/Trolltech.conf
357 :
デフォルトの名無しさん :2013/09/05(木) 00:10:13.43
// で始まるコメント行全体をマッチさせる QRegExp オブジェクトはどのように書けばよいでしょうか?? 教えていただけると嬉しいです。
そんなことすらネットに頼るカス野郎 自分で考えろと言いたいがお前には無理か ^//.*$
>>354 仰る通り
QApplication::setStyle("gtk");
で明示的に指定することで解決できました
ありがとうございます
GTKは糞
qt creatorでFakeVimを使用している時にコードに日本語を入力すると赤アンダーラインが出るがこれバグ?
364 :
デフォルトの名無しさん :2013/09/06(金) 11:17:16.02
qwtPlotについて教えて下さいorz 軸の最大値最小値は、 >qwtPlot->setAxisScale(QwtPlot::yLeft, iMin, iMax); で設定出来ました。 逆に、軸の最大値最小値を取得する方法はありますでしょうか?
365 :
デフォルトの名無しさん :2013/09/06(金) 11:42:08.47
>qwtPlot データ(QVector<QPointF>)から、 軸の最大値最小値を適当に設定する メソッド/プロパティはどれになりますでしょうか?
366 :
デフォルトの名無しさん :2013/09/06(金) 17:25:18.97
QtのOpenGLってパフォーマンスや信頼性どう? ゲームのマルチ開発に使えないかと思ったんだが。 つかデスクトップだとGoogle EarthやLightwaveあたりで実績あるんすかね、もしかして。
GLUTやSDL使うところをQtどうなんつー話では。 しらんけど
>>364 ソースコードを1分読んで取得できるものとできないものがあるのが分かった。
375 :
デフォルトの名無しさん :2013/09/08(日) 21:07:57.33
>>358 コメント行を削りたかったのですが、
QRegExp rx("//.*\n");
rx.setMinimal(true);
string.remove(rx);
で行けました。
ヒントありがとうございました。
376 :
デフォルトの名無しさん :2013/09/09(月) 17:14:05.36
QString から、 >std::string.c_str() みたいなポインタを取得するにはどう書けばよいでしょうか?
QByteArray経由かな
378 :
デフォルトの名無しさん :2013/09/09(月) 21:24:18.71
QString::data() ってなかったっけ?
encodeがないからな
QT5から、QT += svgがUnknown module(s) in QT: svgのメッセージを吐き出すんだけど? レポジトリをppa.launchpad.net/canonical-qt5-edgers/qt5-beta-properに変えても治らない。 何か仕様変わった? ググッても出てこない。 コマタ
Qt5は仕様変わってもドキュメントに書いてないから困る
初めてC++のプログラム開発をQt Creatorで始めてまだ2ヶ月です。 今、シグナルとスロットをconnectした処理を作ろうとしているのですが、 調べ方が悪いのかわからない疑問があるので知恵をお貸し下さい。 例えば、signalAに対するslotAの実行中に、またsignalAが発生した場合、 slotAが2つ並行して実行されてしまうのでしょうか。 並行実行される場合、例えばslotAでグローバル変数の読み書きをしていると、 その変数の読み書きに対して排他制御が必要になります。 また上の質問と同じかもしれませんが、 signalBとそれに対するslotB、signalCとそれに対するslotCがあったとして、 signalBが発生してslotBを実行中にsignalCが発生した場合、 slotBと並行してslotCが実行されるのでしょうか。 それともslotBが終了してからslotCが実行されるのでしょうか。 ちなみにプログラムは、シングルプロセスのシングルスレッドです。 普通なら並行処理はあり得ないのですが、シグナルは割込?なのでどうなんだろうかと。
いやなんというか… 背伸びせずに、とりあえずそろばんあたりから始めてみてはいかがでしょう?
とりあえずQtのヘルプ読めよ シグナルを割り込みとか言ってる時点でQtのことなにもわかってないだろ そんな状態で開発とかキチガイに刃物
取り敢えず、slotAの中にsleepでまってqDebugにメッセージを吐き出す様にして、mouseイベントかなんかでsignalAを複数起こせば動作を調べることが出来るべ。
380でし。 svgはQt5.0から5.1に変えたらSolvedです。 ただ、イロイロ変わってますねぇ。 久方なんで面食らっちまった。 前方参照エラーで弾かれるとか、、、 一部ワンパスパースに変わったのかな? どこかに4.8->5.1までのDiffのまとめサイト無いですか? ご本家には無かったでし。
386でし。 いや ご本家には、migration reportを作ろうというページはreserveされていますがエンプティーです。 w キーワードをmigrate port translateとかいろいろググっても総括サイトは無いようです。 ビッグプログラムコンバートで苦労してもサイトアップするのが面倒なんでしょうね w
388 :
デフォルトの名無しさん :2013/09/11(水) 08:20:29.61
389 :
デフォルトの名無しさん :2013/09/11(水) 08:28:45.36
アプリで、throw例外を一括でcatchする記述は出来ますか?
390 :
デフォルトの名無しさん :2013/09/11(水) 10:07:01.99
>>389 catch(...)
ここで聞くことじゃないだろ。
391 :
デフォルトの名無しさん :2013/09/11(水) 10:19:35.29
>>389 QApplication::notifyを再定義して、その中でcatchする
394 :
389 :2013/09/11(水) 17:45:03.67
ここで質問して良かったですorz
395 :
389 :2013/09/11(水) 17:56:13.14
念のためですが、392のやり方でやります。
質問の仕方が悪すぎる。
>>376 【1】QString::utf16()を使う
const ushort * がかえってくるので、const wchar_t * にキャストして使う。
wchar_t const *p = (wchar_t const *)s.utf16();
【2】QString::toStdWString()を使う
一時オブジェクトのstd::wstringを作ってc_str()を呼ぶ。
std::wstring t = s.toStdWString();
wchar_t const *p = t.c_str();
【3】QString::toStdString()を使う
一時オブジェクトのstd::stringを作ってc_str()を呼ぶ。
エンコーディングの設定に不備があると、望まないコード変換が行われるかも。
std::string t = s.toStdString();
char const *p = t.c_str();
【4】QByteArrayを使う
QByteArray ba = s.toUtf8();
char *p = ba.data();
---
QStringの内部表現がUnicodeだから、QString::utf16()がいいと思う。
strlenの代わりにwcslenを使うとか、strcmpの代わりにwcscmpを使うとか、
wcs系のCライブラリが利用できます。
なんかいろいろ書いてるが
>>376 のやりたいのはマルチバイト文字列のchar*が欲しいって
事で、wchar_t*なんか取れても嬉しくないのでは?
単純に,s.toLocal8Bit().data() じゃダメなのか?
QApplicationの派生ってどうやってやるのでしょうか。 Qt Creatorがスケルトン吐き出した中には既にQApplicationが素で入ってますよね? IDEメニューの「格上げ」みたいな感じでできるのでしょうか。 QApplicationは派生したいけど、間違ったやりかたでIDEとの連携が切れたら困るので。
400 :
397 :2013/09/12(木) 11:25:49.37
>>398 エンコーディングとオーバーヘッドを気にしないんなら、toLocal8Bit()でもいいだろうけど、
内部データがワイド文字列なのに、char *を得ようと思ったら、QByteArrayにせよstd::stringにせよ、
中間オブジェクトとコード変換が必要になるじゃん。
単純に、って言うけど、内部的には単純じゃないんだよ。
生データのポインタを取得してwchar_tのまま処理する方がよほど単純じゃん。
401 :
376 :2013/09/12(木) 12:33:25.33
>>397 >エンコーディングの設定に不備があると、望まないコード変換が行われるかも。
kwsk
402 :
397 :2013/09/12(木) 13:27:57.02
>>401 Qt4.8系の話な。Qt5はよく知らん。
真面目なアプリならLinguistで翻訳ファイルを作るところだけど、
手抜きして、日本語定数をソース上に書いた場合、
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString s = "あいうえお";
QMessageBox::warning(0, "test", s);
return 0;
}
WindowsでMSVCを使ってシフトJISでコードを書いたとする。
そのまま実行すると文字化けしてしまう。
そうならないように、
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Shift_JIS"));
が必要になる。
(続)
403 :
397 :2013/09/12(木) 13:30:31.01
QString::toStdString()は、setCodecForCStringsの設定に依存するから、 std::string t = s.toStdString(); を実行すると、シフトJISに変換されたstd::stringが返る。 Windowsだけでしか使わないならそれでもいいけど、マルチプラットフォームには向かない。 #ifdef WIN32 QTextCodec::setCodecForCStrings(QTextCodec::codecForName("Shift_JIS")); #else QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); #endif とかやりだすと、プログラムがカオスになってくる。でも、MSVCを使う以上しかたない。 (続)
>>400 そうじゃなくて、wchar_t*ではなくchar*が欲しい理由があるんじゃないのか?
要するに本末転倒なんじゃないかってこと。
いや、本人に聞いてみなきゃわからないよ、もちろん。
でも普通はさ、必要な文字コードの方が先に決まってると思うんだよ。
だから std::string.c_str() って書いてるっとことは,char* なんじゃないかと思うわけ。
405 :
397 :2013/09/12(木) 13:32:13.59
既に書いたように、ソースに日本語の文字列定数を書くのは良くない。Linguistを使おう。 とはいっても、ファイルからデータを読む場合で、それがシフトJISなんてことは良くある話。 QString::toStdWString()はいいけど、QString::toStdString()はトラブルの元なので、 マルチバイト文字を含まないことがわかっている場合を除いて、できるだけ使わない。 代わりに、QTextCodec::fromUnicode/toUnicode()を使った方がいい。 QStringに格納されている文字列を、wchar_tじゃなくてcharで扱いたいというのは、 特に理由が無い限り、設計を考え直した方がいい。
Shift JISのテキストファイルに書き出す必要があるとか、いろいろあるじゃん。 そういう目的が先にあった上で聞いてんじゃないのかと思ったんよ。
407 :
397 :2013/09/12(木) 13:37:10.08
>>404 QStringがワイド文字でstd::stringがマルチバイト文字って言う時点で、
すでに噛み合ってないよね。
>>376 のヒトが、何を目的としているか、
1. 生データのポインタが欲しい。
2.8ビット文字列の char * が欲しい。
どちらなのかはっきりしないとわからないね。
>>376 =401さん、そこんとこどうなのさ。違うんならそう言ってくんないと。
409 :
デフォルトの名無しさん :2013/09/12(木) 14:02:49.49
>>409 目が悪いな
おまえ変なものの見過ぎだろ
私のためにケンカはやめて(><) >QStringがワイド文字でstd::stringがマルチバイト文字 QStringがワイドかどうかは、”?”です。 std::stringをベースに、そこにマルチバイトをUTF-8で使ってます。 そのとき、Qtに入出力するとき、 std::stringは何も気にせず、c_str()、してます。 QStringから、std::stringに戻すとき、c_str()、が無いからどうしようorz
なぁ、おっちゃん無職なんだけど、Qtの名古屋勉強会に出席してもええかな?
「QStringがワイドかどうかは、”?”です。 」と書きましたが。。。 「Qtって内部はUTF-8」って聞いていたのに、Windowsで使ってると何となくSJISっぽいのですが、何なのでしょう。 やりたいのは、データがUTF-8なので、QtがそのままUTF-8入出力してくれれば、おk、なのに。
414 :
404 :2013/09/13(金) 13:00:34.08
>>407 さんが大人だからケンカしてないよ。QStringは内部的にはUTF-16だかUCS-2だったと思う。
ヘルプを見る限り,少なくとも16ビットのUNICODEと書いてある。
UTF-8なら,s.toUtf8().data() でおk。逆はfromUtf8()でconst char*から入力できる。
415 :
デフォルトの名無しさん :2013/09/13(金) 13:01:56.28
>「Qtって内部はUTF-8」って聞いていた いまだにガセネタ載せてるサイトあんのか
416 :
デフォルトの名無しさん :2013/09/13(金) 13:03:47.27
>>413 >やりたいのは、データがUTF-8なので、QtがそのままUTF-8入出力してくれれば、おk、なのに。
本気でそう思ってるなら
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8"));
QTextCodec::setCodecForTr(QTextCodec::codecForName("utf-8"));
でおk
>>415-
そ、そうなんですか!!!
>>416 有難うございましたorz
ハッキリと記述まで書いて頂けると助かりますたOTL
419 :
412 :2013/09/13(金) 17:55:52.07
ええかな?
自分で考えるなり主催者に聞くなりしろよそんなんだから無職なんだよ 良いよ。
Qtの勉強会って何やるの? AQPのサンプルソースを追いかけるとか、世界のQtサイトを読んだほうが良くね? まさか、英語読めない人がQtとかないだろうから・・・ 一番は、目的をもって何か作ることだとオモ。
422 :
412 :2013/09/13(金) 22:09:37.41
ありがと。ほなら、おっちゃん、参加してみるわ。 Qt鈴木に会える見たいやで。
423 :
デフォルトの名無しさん :2013/09/14(土) 09:54:00.43
負け癖が付くから演技悪い
定時に実行する方法ってありますか? timerで12時間ごとに実行とかは出来るのですが 0時,12時とか決まった時刻に実行するようにしたいのですが
425 :
424 :2013/09/14(土) 22:28:16.18
ちなみに今はtimerで実行する関数内で時刻を取得して処理しています ただ,この場合何度も関数を実行する必要があって気持ち悪いので別の方法を探してます
次の0/12時までの秒数求めてtimer設定とか
単にプログラムが起動した時刻を取得して、 0/12時までの秒数を計算してTimerをセットして、 以後、Timerで実行される度に次の0/12時までの秒数を計算してTimerをセットを繰り返せばいいんじゃないか?
どの位の精度が必要なんかね?
qtでコマンドライン実行から、クリップボードに値の読み書きを行いたいのですが、 コマンドラインベースでプロジェクトを作成すると QApplication::clipboard()系の命令でエラーが出て困っています。 やり方わかる人教えていただけませんか? (linux mint / qt5) とりあえず、足掻いて下記の事は試しています。 @ダイアログベースでプロジェクト作成して、 main処理でメイン処理行って、ダイアログのshowを止める →処理は正常に動作したが、プロセスが死なずに残る。 Aダイアログ生成後、即プログラムが終了するようにMainWindow側でclose(); →Close命令が無視され、画面が表示されたままになる。 B関連ありそうなヘッダ等を色々追加 →○×、、、(−△−; C2ちゃんに泣きつく ←今ここ よろしくお願いします。
よくわからんけどコマンドラインベースのアプリならQCoreApplication何じゃないのかな?
D諦める ←正解
linux(X11)の場合event loop回ってなかったらclipboardが正しく使えないからじゃね ダイアログ云々はモーダルダイアログだったとか(ダイアログ閉じるまで他のウィンドウ操作不可) つかエラーでて困ってるならエラー書こうぜ
>>429 int main(int argc, char** argv) {
QApplication a(argc, argv);
a.processEvents();
qDebug() << QApplication::clipboard()->text();
}
動作するけど、あまりよろしくない気もする
クロスプラットフォームは諦めて直接Xlib呼べよ
なぜcronを使わないの?
437 :
429 :2013/09/15(日) 22:24:45.93
>>430 無理でした。
>>431 これでも妥協した結果なのよ(−−;
>>432 >>linux(X11)の場合event loop回ってなかったらclipboardが正しく使えないからじゃね
なるほど。
>>エラー
incomplete type 'QApplication' used in nested name specifier
普通に、'QApplication'てなんだよ。こらぁ。ってエラーです。
>>433 それは試したけど、プロセスが残ります。
>>x434
そうですよね。。
>>435 何それ。
処理分けして、linux用の処理書く方向で、
xlibもしくは手抜きでxclip利用で対処してみます。
情報ありがとうございます。
>>437 いや
>>433 は別にプロセス残らんがほんとに試したか?
exec()してたりしないか?
あとそのエラーメッセージ読めないのは勉強不足すぎるわ…
439 :
429 :2013/09/16(月) 00:25:57.02
>>438 もち、試したよ(−−;
疑い深いなあ。もお、。
ちゃんと、execとめて、return 0;にしたバージョンも検証してる。
linux mintの環境のせいかもしれんが、
プロセス残るんだからしゃないやん。
>>あとそのエラーメッセージ読めないのは勉強不足すぎるわ…
名前空間に居ない時のメッセージだと思ってたけど違いますか?
すみません。意味教えてください。
m(_ _)m
馬鹿には無理
>>440 それはいい言葉だとは思うけど
発言者が(一見の)バカかもしれないと思うと
説得力ないんだよな。
それやるなら相応のコテじゃないと納得できませんよ
>>437 cronは
>>424 へのレスです
(何それ。とは吃驚ですが…)
それくらい自分で解決できないなら、馬鹿には無理って言われてもしょうがないと思う
まあレスからすると職業プログラマじゃ無さそうなので、2chに泣きつくのもありだと思うけどね
443 :
429 :2013/09/16(月) 05:58:14.39
>>442 すみません。
それ、自分への回答と勘違いして発言してます。
質問は、クリップボード処理なのにcron使えって回答来たのかわからなくて。
逆に自分の方が、
何とんちんかんな事何言ってんだこいつ、cronの機能を何かと勘違いしてないか?(−−; って
反射的に、書いちゃったんだよ。。
>>439 疑り深くもなるよ、エラーメッセージもドキュメントも読む気がないのが伝わってるからね
最初の2単語ぐらい訳してみて、なんだよこらぁで納得できるならそれでいいんじゃないかな
そのエラーQt関係無いし、ここQtスレだから自分で勉強してきてよ
プロセスが残るのは環境かバージョンのせいじゃないかとも思うけどこっちじゃ再現しないからわからない
そっちのコードまるで信用できないしなあ
>>439 >>433 で問題なく動く。プロセスも残らない。
linux mintだからという理由でプロセスが残るのは絶対にありえない。
エラーでコンパイルが通っていないだけだろう。
448 :
429 :2013/09/16(月) 13:11:19.37
>>433 >>445 申し訳ありません。
ここに簡略化したコード載せようとして試したら、
問題無く動作しました。
(QT GUiアプリで新規作成)<433そのままです>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
//アプリケーションのグローバルクリップボードのポインタを返す。
QClipboard *clipboard = QApplication::clipboard();
//テキストの取り出し(テスト)
QString str = QApplication::clipboard()->text();
//テキストをセット(テスト)
clipboard->setText(str);
return 0;
}
「先に余計なロジックコメントにして試すだろ。普通。」って話ですが、、、、。
あせっていた事、一度試した方法だったので不十分な検証で確認していました。
本当に、お騒がせしてすみません。
449 :
デフォルトの名無しさん :2013/09/16(月) 13:31:22.68
馬鹿には無理
自分のせいなのに他を疑って後で恥ずかしい思いをするのはソフト屋にはよくあることです
451 :
デフォルトの名無しさん :2013/09/16(月) 17:00:23.33
日本語の文字列リテラルを直接書く手抜きが vc2012+qt5では出来ないだと?! ソース中の文字列リテラルを勝手にSJISに変換するクソ仕様もvc2012では別に変わっていないし
UTF8したければ、 >QString Qutf8 = QString::fromLocal8Bit("あいう"); で、ソース中文字列おk、 ですよね? さらに、それをSTLに入れたいときって、 >std::string sutf8 = Qutf8.toUtf8().data() >std::string sutf8 = Qutf8.toUtf8().constData() >std::string sutf8 = Qutf8.toAscii(); のどれが正しいのでしょうか?
453 :
452 :2013/09/19(木) 14:31:24.82
ちなみに、 >QTextCodec::setCodecForCStrings(QTextCodec::codecForName("utf-8")); した環境です。
QString::fromLocal8Bit は QTextCodec::setCodecForLocal で指定したcodecで変換する QTextCodec::setCodecForCStrings で指定したcodecで変換するなら、QString::fromAscii でこれは、QString qutf8 = "あいう"; と等価
>>451 2010(とパッチをあてた2008)なら#pragma execution_character_set("utf-8")を入れておけば
UTF-8で保存してくれたんだけど、2012では使えなくなってしまった
C++11のユニコード文字列リテラル使うとか vc使える環境じゃないんで試したこと無いけど
それが2012でもユニコード文字列リテラルに対応していないんだな
>>457 それは失礼しました
C++なんて主流じゃないのかもしれないけど対応頑張ってほしいなあ
なんでwstring使わないん
Windows8はUTF-8やろ。なんでVS2012でユニコード文字列リテラルに対応してないんや? おっちゃんにも意味がわからんわ。
461 :
デフォルトの名無しさん :2013/09/19(木) 18:04:44.01
ええっ!?
Qtってbluettoothサポートライブラリってあるの? まだ、そっちはjavaの世界かな?
463 :
デフォルトの名無しさん :2013/09/19(木) 20:18:39.10
QTableWidgetの左上カラムに文字を表示したいのですが、 どうすれば宜しいでしょうか?
>>459 QString str = QString::fromStdWString(L"日本語"); とかなら確かに動くんだけど、
Windows以外ではリテラルが一文字4byteになってしまうしなぁ
それは我慢できるとして、QObject::tr 等には結局使えない
諦めてAsciiで書いて翻訳するのが正しいのだろうな
>>465 std::string sutf8 = Qutf8.toStdString();
STLのstringに変換するということは、STLの関数を使いたいということだろうから素直に変換したほうがいいと思う
Qt4.xではQTextCodec::setCodecForCStringsで指定したcodecで、Qt5.xではutf-8で変換される
幸いstd::stringについては、Qtの動くプラットフォームでの違いは無いけど、std::wstringとか基本的に実装依存だから
>>464 1文字4バイトで何が困るのか分からんけど
gccなら -fshort-wchar ってオプションなかったっけ
あとtrはこういうマクロ作れば別に使える気がする
#define WIDE_TR(x) tr(QString::fromStdWString(x).toUtf8())
まあライブラリやAPIの兼ね合いもあるし、別にワイド文字列を無理強いするつもりはないが
>>468 QString::toStdString()というより、正確に言うとstd::stringやSTLの
テンプレートクラス全般がDLL境界を跨って受け渡すのに向かない代物なんだわ
DLL側で作ったstd::stringのインスタンスをアプリ側で破棄するシナリオを考えると
std::string内部のメモリの確保はDLL側、開放はアプリ側のアロケータで行われるので
両者のアロケータとヒープが同じ、つまり共有されてないといけない
その唯一の条件は、リリース/デバグ変種まで含め完全に同じC/C++ランタイムDLLを
アプリとDLL側が使っていること(つまりランタイムのスタティックリンク不可)
その条件から外れればクラッシュする
これはWindowsでDLLを利用して開発してるなら常識で、別にQtに限らない話
結局、 >std::string sutf8 = Qutf8.toStdString(); と書けないとしたら、 どうすれば。。。 std::string利用は常識だけど、それに渡せないとしたら、説明は論理的だったとしても、 結果が非常識(><)
>>471 std::string s(qs.toUtf8().constData());
とでもすればいい話
つまりQt側からはconst char *で受け取って、アプリ側でstd::stringを構築する
qs.toUtf8()で得られるテンポラリなQByteArrayのインスタンスは副作用完了点で
破棄されるので、↑の代わりに↓のようなことをしてはいけない
const char *s = qs.toUtf8().constData();
// sを使って何かする
なるほど、良くわかりましたorz >std::string sutf8 = Qutf8.toStdString(); がNGなのに、 >std::string s(qs.toUtf8().constData()); がOKな理由をイマイチ知りません。 .toUtf8()の戻り値が、QByteArrayで、メモリ管理の仕組みを仕様に組み込んでくれているあたりに理由があるのでしょうか? >const char *s = qs.toUtf8().constData(); これはC言語からC++/STLになった時点でNGですよね。
>>473 上の例ではstd::stringのデストラクタ、下の例ではQByteArrayのデストラクタが
いずれもアプリ側で実行されるの同じ
デストラクタから普通は直接ないし間接にメモリを開放するコードが呼ばれるが
std::stringの場合はテンプレートなので、デストラクタがアプリ側のコンパイル時に
展開され、デストラクタ実装は「アプリ側に」あることになる
このようなケースでも、デストラクタから呼ばれる肝心の解放用の関数が
DLL側から提供されているものなら大丈夫なんだが、
ただのdeleteやfree()の場合、アプリが利用しているC/C++ランタイムのものが
当然のように使われるので、DLL側のアロケータと不整合が生じる
(可能性がある)わけだ
最後の行は、たぶん意味をよく分かってないだろ
まあいいけど
475 :
474 :2013/09/20(金) 17:20:10.31
2行目 ×いずれもアプリ側で実行されるの同じ ○いずれもアプリ側で実行されるのは同じ
QString::toStdString()とQByteArrayだと結果が違うという報告がありますよね。 その説明に、”DLL”が入ってくると意味わかりません。 その説明を納得しちゃうと、QStringがDLLで、QByteArrayがDLLじゃない、という理解になりまつよ。
>>476 理由はQByteArrayのデストラクタを見れば分かるだろ
デストラクタがinline化はされているが、実際にメモリの解放を行うのはQtのDLL内で
実装されているqFree()だから、std::stringのような確保と解放の不整合が起きない
というか俺Qt全然使ってないんだが、何でこんな説明しないといけないんだか……
後は勝手にしてくれ
いや、QByteArrayとstd::stringの違いじゃなくて、 QString::toStdString()とQString::toUtf8.ConstData()(←実態はQStringじゃなくて、QByteArray)なんだけど。 ググったら、 >std::string sutf8 = Qutf8.toStdString(); がクラッシュするってのは、 英語サイトでも有名みたい。 知りたいのは、QStringからstd::stringに移す時の、 クラッシュする記述(←toStdString)と、クラッシュしない記述(QByteArray経由だとおk?)。 できれば、その理由。
以下、説明に"DLL"ワード禁止。
普通は
>>470 だけで理解する
ここまで説明されても理解できないんなら理解力に問題があるか
前提となる知識が根本的に不足してるんだろ
後は"dll boundary"あたりのキーワードでぐぐって自分で学べ
赤ちゃんじゃないんだから
>>469 為念、試してみたけど-fshort-wcharでUCS-4→UCS-2にはできるけど、fromStdStringが
想定していないようで上手くいかないね
trも本来の使い方ができないので、QStringで記述したほうがマシかな
qs.toUtf8().constData() こういう書き方大丈夫だっけ? 生成してすぐにQByteArrayのインスタンスが破棄されてしまうから constDataで受け取ったポインタの中身は不定になる
でも、QByteArrayってのは、 C言語のcharへの繋ぎのためのクラスって説明は、 渡すことをサポートする仕組みはあるっぽいですよね。 だから、「qs.toUtf8()」で、QString→QByteArray、と物が変わるのではないかと。 動作が変わらないなら、QStringのままだよね、普通。
>>485 >>472 にわざわざ「副作用完了点」に関する言及があるのが読めないのだろうか
C++では副作用完了点までの間に一時オブジェクトが破棄されることはない
(言語仕様として規定されている)
このスレで下らない質問をする輩に言語仕様云々言うお前が阿呆 猿に字を書けって言ってるようなもの
485は新参だよ。 レスで相手を見下げるのに必死になるんじゃなくて、 質問回答のコアの部分を明確にして会話をスムーズにしなよ、 出来るヤシなら。
>std::string sutf8 = qs.toUtf8().constData(); これは副作用完了点までオブジェクトが破棄されないので、QByteArrayオブジェクトのconstData()で、おk。 >std::string sutf8 = Qutf8.toStdString(); こちらは、宣言を見ると、 >std::string toStdString() const となっている。 STL同志がメモリ連携しようとするが、 異種のSTLだったとしたら、上手くいくわけはない、ということですかね。
>>489 別に「見下げるのに必死」なつもりはないが
> qs.toUtf8()で得られるテンポラリなQByteArrayのインスタンスは副作用完了点で
> 破棄されるので、↑の代わりに↓のようなことをしてはいけない
> const char *s = qs.toUtf8().constData();
と駄目な比較例とその理由まで書いてあるのに
>>485 のような質問が出てくるのは理解が苦しむな
C++以前に日本語が読めないんじゃないのか?
>>473 std::string sutf8 = qs.toUtf8().constData();
で良いと思うの
STL使わなきゃいいじゃんと思ってしまうな。 過去の資産をどうしても使わざるを得ないとか以外でQtでSTL使うメリットあるかね?
Qt Creatorのバグが治ってる(・∀・)
Qt Creatorのコード検査の処理がどんどん重くなってる それに伴いワード補完も遅すぎて役に立たない 昔のほうがワード補完早くて使いやすかった
それでもC++Builderとかに比べれば全然早いと思う
世の中全てがQtになるわけじゃないなら、コア部分はQtにできないんじゃないかなぁ。 Wikiとか読むと、Clangには、ググルやアポーから資本が流れてるっぽい。 Qtには、資本が流れてる感は無い。 アプリがWin32apiベースから、ウェブサーバーベースや、スマフォアプリベースに流れてるけど、 その際にQtに流れる感が、(ry
QtとClangが何故比較対象になるのかよくわからん。 ClangでbuildしたQt使えばいいんじゃないか?使わなくてもいいけど。 ウェブサーバーベースとやらのバックエンドをQtで書いてもいいし スマフォアプリベースとやらをQtで書いてもいい。もちろん書かなくてもいい。
501 :
デフォルトの名無しさん :2013/09/25(水) 02:00:04.09
Qtに触れた事がなく学習のため書籍購入を検討しています。 近所の本屋に置いてなかった為、ネット上の目次のみでは判断しかねました。 識者の方々にご助言いただければ幸いです。 Qtの学習を始めるにあたり『実践 Qt 4プログラミング』だけで大丈夫でしょうか? それとも『入門 Qt 4プログラミング』から始めたほうが良いのでしょうか? (一応、GUIプログラミングはWin32とAWTの経験があります)
俺は実践の飛ばし読みから始めたけど、知識があまりにも断片的になるんだよね・・・ そのあと入門読んで体系的に理解できてきた感じ 飽きっぽい人は最初に実践でもいいと思うが、俺は入門がおすすめ
>>502 なるほど、入門から買うことにしました。
ありがとうございました。
GUIプログラムの経験があるなら本なんか買わずにオンラインヘルプとネットの情報で十分だろ 本の記述は古いし、未経験者向け 恐らく買ってもさらっと流し読みしてブックオフ行き
Qtの本って資源の無駄だろ Webに全部資料あるのに
ただし英語だけどな
日本語のpdfも見たことある どこだったかは忘れた
英語って言っても技術文書なんて中学生レベルの文法知ってれば簡単に読めるだろ 単語だって技術用語だからほとんどカタカナ日本語になってるし 小学生に読めって言うのは酷だけど
ソースコードじゃないアルファベットが並んでんの無理
日本語で思考する日本人が英語の文書を解析するためには余計なレイヤが必要だし 処理効率は落ちる ネイティブな言語で書かれた文書の有用性は否定されるべきでない ネイティブの効率を求めないならJavaでも使ってろってことだ
???
クソワロタ ぴゅうたでも使ってろw ジッコウ トマレ オワリ
入門薦めた俺以外に誰もまともなアドバイスしてねーじゃねえか 英語がどうこう言うならせめて分かりやすいブログやYoutubeのリンクくらい書けよ
入門にいいのない?→この本どうよ?→本は全部糞タダで公開されてるのPDF読めただし英語 →普通英語くらい誰でも当たり前に読めるだろ(キリッ ってのは、もう5回くらいはこのスレで繰り返されてるテンプレだから
まあ、趣味でプログラムやってる農家のおっちゃんとかなら英語読めなくても困らないだろうけど、 仕事でやってると英語読めないと話にならないのよ Specificationが全部英語とか普通にあるし
公式サイトはMSDN並の充実だしStackOverflowにはたくさんの一問一答があるけど そういうリファレンスやBBSからつまみ食いしているだけだと、実践読むのと同じで知識が断片的になる 公式が充実してるせいでRedditは無人だしYoutubeは技術デモかQt Creatorの触りくらいしかない だから入門を読め。その場しのぎじゃない体系を知るために読め。つかなんでもいいからたまには本を読め。はい論破
入門買ってわからない時に見る感じでおk
Qtの入門(本)は、Qtのチュートリアルと内容大差なかった気がする 古いバージョンなら、確か訳されたチュートリアルがあったと思うから、まずはそれを読むといいよ
>知識が断片的になる それで満足な自称プログラマのいかに多いことか
ほんの一部をさらっただけの入門読んだだけで体系とか笑えるな お前本当に読んだのか?
>>520 特に stack overflow 見てるとそう思うわ
じゃあ、せめてあそこレベルには開発に役立つレスをしてください
体系見るには、ライブラリのソース見るしか無いとオモ。 何ていうか、驚いたのは、デリゲートのカタマリ。 というか、処理は1個のデリゲートがやってる感じ。 これによるメリットって何なん? 別に自分でやってもデリゲートでやっても、、、差異は、みたいな。
525 :
デフォルトの名無しさん :2013/09/26(木) 12:33:38.18
おい、だまされるよな!入門Qtは超良書だぞ!Qt関連の本は全部良書。Quickのだけ知らん。
qtsingleapplication 使うのって、ライブラリのリビルドから、やらなければならないのでしょうか?
オフィシャルじゃなく追加の非公式Qt4用ライブラリらしいから知ってる人少ないんじゃないかな なんで必要なのかも書けるなら別視点のアドバイスあるかも知れないけど
Exeを2つ起動しなくしたいだけです。 QtSingleApplicationのソースを組み込むだけで、それが出来るなら、そうしたいです。
examplesも非常に助かりますが、今あるプロジェクトへの組み込み方も知りたいです(?_?)
531 :
デフォルトの名無しさん :2013/09/27(金) 17:27:11.58
>>530 examplesを見てまねすればいいじゃないですか。そう思ってexamplesもあると言ったのに。
訳:コピペできるソースをくれ
さすがに甘えすぎだろこりゃ。
exampleもコピペできるだろうに
改変一切なしにまんまコピペすることで動くソースを下さい
zipでkr
Qt以前にC++を学習したほうが良いレベル
むしろバイナリでくれ
レベルが知れるな。
540 :
デフォルトの名無しさん :2013/09/30(月) 17:46:23.60
Windowsで、QLineEditのIMEをディセイブルにしようと思ったら、 >ui->lineEdit->setInputMethodHints(Qt::ImhDialableCharactersOnly); で出来ました。 QTableWidgetのIMEは、同じ方法でディセイブルに出来ません。 おそらく、内部でeditorを生成しているところで、制御しなければならないのですよね? しかし、生成が、QTableWidgetとデリゲートクラスが、色々やりとりやっていて、素直に処理が見えません。 どこをどう変えれば良いのでしょう。 派生クラスになっても良いので、何とかしたいです。
541 :
デフォルトの名無しさん :2013/09/30(月) 19:35:28.87
QStringList::iterator i = qFind(list.begin(), list.end(), "Karl"); cout << *i; cout << endl; ↑エラーになるんだけど、なんで(;ω;) ググッてもcout << *it << '\n'ってかいてある
エラーを貼れ
543 :
デフォルトの名無しさん :2013/09/30(月) 20:28:53.02
qDebug(*i);
544 :
デフォルトの名無しさん :2013/09/30(月) 20:30:33.19
cout << (*i).toUtf8().constData() << endl;
545 :
541 :2013/09/30(月) 20:33:21.68
みなさん、どうもありがとうございました。
>>544 さんのやり方でできました(;ω;)
感謝感謝です(;ω;)
馬鹿には無理
わざわざQtでSTL使ってるのはWindows方面の方々なんだよな 知識レベルも知れたもの
STLじゃなくてiostreamだろ
コンテナとか全部Qtのやつ使うのか?って思ったらそういうことか
Qt5ってそろそろ実践投入できそう? Qt Creatorはまだ4使ってるみたいだけど
Qt5.2 Alpha きたな
普通に5使ってるけど ただやっぱり日本語がめんどくさい
どうゆこと?日本語むつかしね?
554 :
デフォルトの名無しさん :2013/10/01(火) 06:43:32.46
前ちょっと Qt 5.1 使ったら、Input Method の仕様がが変わってて面食らった しかも、動作がなんか変だったので、4.8 に戻した
内藤さんがかわいい(*>ω<*)
556 :
デフォルトの名無しさん :2013/10/01(火) 13:35:52.25
QSliderでのつまみのサイズの調整ってどうやればいんでしょか?
557 :
541 :2013/10/01(火) 13:44:55.89
558 :
541 :2013/10/01(火) 13:48:25.59
な〜んか、Nokiaに改悪された気がする・・ やっぱTrollTechのころが、一番よかったんでしょうか・・
>>554 Qt5のInput Method使い方わからない
変えるのはいいけどドキュメントくらい用意して欲しいわ
>>557 QStringを自動キャストしても
大抵文字化けして読めないから辞めたんだろうな
Qt3の時代ならアスキー文字だけで困る人少なかったんだろうが
自動キャストしたいならoperator使えばいい、それがC++の自由度だろう
>>540 デリゲートを派生してcreateEditor()を再実装。
562 :
デフォルトの名無しさん :2013/10/01(火) 17:06:37.11
>>550 次に出るQt5.2で判断しようと思っている。
>>559 ドキュメントは他にも不十分なのが目立って多くなっている。
Nokiaに引っ掻き回されてドキュメントに避けるパワーがなくなっているんじゃないかな。
ソースコードも前より汚くて拙いコードが目立つ。
>>557 ,558
Qt3とQt4以降のQStringは別物
Qt3のQStringはバイト列だったけど、Qt4のQStringはencodingやendianを意識しないユニコード列
この変更は2005年に行なわれて、2008年のNokiaによる買収とは無関係
565 :
557 :2013/10/01(火) 21:30:26.60
>>560 Qt3は、アスキーが主体のころだったんですね。ユニコード主体になると色々変わってくるんですね。
ああ、Qt理想郷が欲しい・・
>>564 Qt3とQt4のQStringが別物なんですね。すげえっす。同じクラスが全く別物になっちまうとは。。
Nokia買収とは関係ないんですね。Qtを最近やってきて、VB6なみにスゲエわかりやすくて
感動してたんですが。。ちょっと残念な気がします。他はわかりやすいんで、全然おkなんですが。
今回は勉強になりました。皆さん、どうもありがとう。
> Qt3は、アスキーが主体のころだったんですね。 そんなわけないだろASCIIじゃ日本語使えないじゃないか Qt3リリースは2001年だが、Windows NTは3.1(1993年)から Javaは1995年からずっとUnicodeだぞ 当時はまだUCS2のある意味平和な時代だったがな
toStdStringの件は結局Qtのバグなの?
>>565 >ああ、Qt理想郷が欲しい・・
自分でOS創れ
>>568 君がCodecsの設定を間違ってるだけじゃない?
571 :
デフォルトの名無しさん :2013/10/02(水) 11:15:42.76
しょうがない、俺がQOSクラスでも作ってやるよ。
572 :
デフォルトの名無しさん :2013/10/02(水) 14:03:22.80
540もヨロ!
574 :
デフォルトの名無しさん :2013/10/02(水) 15:40:40.62
↑ エディタを差し替えるっていうそのやり方も知りたかった内容でしたorz ところで、QTableWidgetのエディタを生成するタイミングでそのオブジェクトを捕まえて、 属性変えたりできないかなぁ、とも思っています。 エディタを外から生成・破棄するのも、なんだか管理が面倒だな、と思う局面もありまして。
馬鹿には無理
577 :
540 :2013/10/02(水) 18:08:01.44
>void QAbstractItemView::edit(const QModelIndex &index) の中の、 >if (!edit(index, AllEditTriggers, 0)) のを追いかけて、実態はQLineEditっぽいことは分かったのですが、 editってvirtualじゃないし。。。 デリゲートクラスとか派生できるんだろうか。 派生したデリゲートクラスに差し替えることはできるっぽいけど、手順多いですよね。
578 :
540 :2013/10/02(水) 18:21:07.21
あ、 >bool QAbstractItemView::edit(const QModelIndex &index, EditTrigger trigger, QEvent *event) をオーバーライドすれば良いんだ? 何だか、このメソッド、冗長じゃない?_? どこ通るのか、場合によって違ってそうで、、、 読めない。
579 :
540 :2013/10/02(水) 18:32:12.83
連続投稿すみません: >d->openEditor(index, d->shouldForwardEvent(trigger, event) ? event : 0); この「d->」ってのが、QAbstractItemViewPrivateみたいなんですが、 これってデリゲート・オブジェクトって位置付けですか? それともPrivateのカタマリで拡張できませんよって意味ですか?
580 :
540 :2013/10/02(水) 18:45:53.60
と思ったら、 >QWidget *QAbstractItemViewPrivate::editor(const QModelIndex &index, の中で、 >w = delegate->createEditor(viewport, options, index); ってやってる。 Privateクラスがdelegateオブジェクト(QAbstractItemDelegate)をhasしてる? QAbstractItemDelegateのQ_SIGNALには、closeEditorはあるけど、 createEditorもopenEditorも無いってことは、 どっかのメソッドをオーバーライドするしかない?
もう少しまとめてから書き込んだ方がいいんじゃね
>>577 デリゲートのcreateEditって言ったじゃないの。
>>565 QStringの変更は国際化には避けて通れない選択だった
さもなくばVC++のように未だにローカライズに足を引っぱられて
国際化できないでグダグダになっていたと思う
# MS的にはC#を使え!ということなんだろうけど
>>569 >ああ、Qt理想郷が欲しい・・
Nokiaさえいなければね。Trolltechの経営者も碌でなしだったということだ。
Nokiaは、Qtが他の皆に役に立つからと言ったくせに、その実態はNokiaのためだけだった。
自分の役に立たなくなったら、さっさと切り捨てるのはどういうことか。
諸悪の根源。有力開発者の離散などNokiaがQt
をダメにした。
へー
587 :
デフォルトの名無しさん :2013/10/04(金) 06:28:19.76
>>585 で、お前は Qt のために具体的に何かしたのか?
お茶とお琴を少々
NOKIAによるTrolltechの買収は、NOKIAにとっては非常に残念な結果になってしまったが Qtにとっては非常に幸運なマリアージュであったと思う Qtopiaでしか採算を得られていなかったQtのパトロンとして機能した TrolltechではLGPLにはできなかっただろう
>>589 LGPL乞食か。タダで使えればよいというだけでQtの発展のことなど考えていない奴らだ。
Nokiaが失敗したのはQtにとってまだよかった。
そのままなら単に利用されるだけでiOSとAndroidはサポートされない。Nokiaの邪魔になるだけだからだ。
その話は自分のブログでやってくれないかな 江添氏ほどではなくとも才能はあると思うよ
592 :
デフォルトの名無しさん :2013/10/06(日) 09:13:25.85
C#でQt使いたいなと思ってググったら過去スレに >C#のQtバインディング使いたいよお >Qyoto, Qt#, QtFor.NET >全部死んでる・・ とあったんですがQyoto他 何か問題抱えているんでしょうか?
C#だけで完結するから Qtのメリットないんじゃね
Qt 使おうというのに何が嬉しくて非ネイティブにするのか。
C++でやれば済むことを、なぜわざわざC#などという面倒くさい言語を使いたいのか。
Qtの数あるバインディング全否定はこのスレのテンプレだな
C#にはWPFがあるじゃないか
>>591 ブログでやっても粘着がわざわざブログまで出向いて
コメント荒らしするだろw
江添のブログ見てもそうだもんな
嫌なら見なきゃいいのにわざわざあの長文読んで
コメントで文句垂れてるのが信じられんわw
江添のブログのアンチってアンチを装った信者だと思うわ
アンチじゃない俺でさえあのブログ読むの面倒でキツのに
嫌いなのに読まずにいられないなんてあり得ないw
>>590 iOSとAndroidへのbindingはNOKIA時代の成果だと思うのだが
binding?
droidへの対応はNecessitasを取り込んでからだろ。 Nokiaと関係ねー
necessitasはNOKIA時代に進めていたlighthouseの成果だろ Digiaへの売却前に既にQt5の形はできていたと思うが
Androidでは、結構使われているのでしょうか?_? iOSなんかはやっぱり、アポーの開発環境XCodeで画面作るのが基本なんかなぁ。
俺、何気に10年位前にDigiaのデジカメ買ったよ(´・ω・`)
実例は知りたいなぁ
>>599 >iOSとAndroidへのbindingはNOKIA時代の成果だと思うのだが
これらのプラットフォームに対してNokiaの成果など何もない。
Nokiaは積極的に対応しなかった。Nokiaの携帯を売るためにね。
>>602 全く違う。NokiaはAndroidにはまったく対応しようとしなかった。
NokiaはNokiaのためにしかQtを利用しようとしなかった。
LGPLになってよかったという奴らはタダで使えるからだけで喜んでいるだけでQtを潰しているのを分かっていない。
アスペはちゃんと製品ライセンス買ってるの?
ノキアに親でも殺されたのか? このバカは
QString::toInt() って、末尾に文字が混ざってるだけで値ゼロにしがちですよね。 どうやったら回避できるというか、atoiライクに先頭数値を活かしてくれる方法はありますでしょうか?
611 :
デフォルトの名無しさん :2013/10/08(火) 11:03:07.91
>>610 それくらい自分で関数作ったら?
5分もかからないだろ
>>608 当たり前だ買い続けている。
>>609 NokiaがQtを殺したことすら分からないのか。
タダで使えるようになったからと礼参するLGPL乞食はバカの骨頂だ。
コンシューマライセンスの値段すらまともに知らなそうだな
615 :
デフォルトの名無しさん :2013/10/09(水) 01:11:35.34
Qtで作成されたアプリって実行遅くね? やたら、もっさりしてるw MFCと比べたらマジで死ぬほど遅いんですけど・・・
MFCって旧世代の遺産ってイメージがあるけど 最近は進化してんのかな
申し訳程度にリボンUIがプレゼントされたけど 基本的にMSもネイティブ開発は捨てろってスタンスだから・・・
618 :
デフォルトの名無しさん :2013/10/09(水) 07:10:58.84
>>615 さくさくエディタはQtで開発されているが、世界最速と言ってるぞ
QStringってc_str()が無いから、atoiしにくいよね?
621 :
デフォルトの名無しさん :2013/10/09(水) 09:27:24.67
そうだけど、他の動作も別にもっさりはしてないぞ。
ファイル開くのもかなり早いし、
垂直スクロールバーによるスクロールも遅延は全然無い
>>615 は、Qt アプリのどんな動作がもっさりしてるって言ってるんだ?
起動じゃね。Swingほどではないが、MFCに比べると体感する程度には遅いよ
623 :
デフォルトの名無しさん :2013/10/09(水) 09:52:25.08
さくさくエディタの起動は1秒程度だし、特に遅い気はしないぞ。 具体的に起動が遅いQtアプリって何かあるの?
ネットワークドライブを含んだ ファイル選択ダイアログとか出すと めっちゃ遅くなるよ
Linuxの場合、QFileDialogはQtのオブジェクトで作ってるが Windowsの場合は、nativeのdialog(MFCのCFileDialog)を使ってるはずなんだが 何が遅くしてるのかなぁ
アプリ書いた奴が糞なんじゃね それをQtのせいにしてるんだろ
Firefoxの操作がChromeに比べると もっさりしてるなって感じるようなもんで 比較して分かるもんなんだろう 実際もっさりしている 比べなきゃいいんだが
qtcore、gui、glだけリンクしたアプリでも 古くてガタがきてるPCだと起動がくっそ重くて1分くらいかかるわ ただまあ起動したあとの操作感は別に変わらん 操作感変わるとしたら、使うウィジェットによるかも知れんが俺も作り方が悪い方を疑うかな
>>628 そんなマシンだと.netは使い物にならないんではないかと...
俺の作ったソフトじゃないけど、なんかパーティション操作のフリーソフトがQt5製だったけど すごい軽かったよ。秀丸エディタ並に軽かった。 俺のPCはCeleronD 2.93GHz メモリDDR1 1GB オンボードグラフィックス
PyQt5.1 が出てるね。 こうサクサクっと見栄えがするGUIが作れるのは嬉しいね。
PyQtじゃないほうは今どうなったんだろう
633 :
デフォルトの名無しさん :2013/10/11(金) 23:54:05.48
>>631 見栄えを気にするならMFCだろ
かなりカッコいいUI作れんぜ
( ´_ゝ`)
635 :
デフォルトの名無しさん :2013/10/12(土) 03:57:14.02
>>632 PySideの方なら、進歩は遅いけどそこそこやってる感じ
ただ、まだQt5に対応してないんだよなぁ
PySideについてきたQt Designer4.8.5を使っているのですが, 生成したpythonコードのSIGNALが旧式のままでした 新スタイルのものを生成することはできますか? button = QtGui.QPushButton("Call someFunc") QtCore.QObject.connect(button, QtCore.SIGNAL('clicked()'), someFunc) ではなく button = QtGui.QPushButton("Call someFunc") button.clicked.connect(someFunc) を生成して欲しいのです
638 :
デフォルトの名無しさん :2013/10/17(木) 18:58:37.89
Windowsのシャットダウンイベントを捕捉したいと思っています。 ウワサではWM_ENDSESSIONというイベントがアプリに来るらしいのですが、 Qtのプログラムで捕捉できるのでしょうか?
639 :
デフォルトの名無しさん :2013/10/17(木) 19:34:01.09
void MainWindow::closeEvent(QCloseEvent *event) { if (userReallyWantsToQuit()) { event->accept(); } else { event->ignore(); } }
有難うございましたorz
>>619 c_str()は不要。intにするメソッドが用意されているので使いやすい。
>>614 >コンシューマライセンスの値段すらまともに知らなそうだな
個人だが充分元が取れる。
いやそれ以前にアスペちゃんってとこには噛み付かないのか
644 :
デフォルトの名無しさん :2013/10/20(日) 10:50:20.58
QListWidget::setViewMode()にIconModeを, QListWidgetItem::setFlags()にQt::ItemIsEditableを追加したウィジェットを作ったのですが, アイテムをダブルクリックするとテキストエディタが右に表示されます. どうすればテキストの上にエディタを表示できますか? 環境はQt 5.1,OS XとLinuxで確認しました.
docking時に、MFCみたいにアイコン出す方法はないの?
>>644 自己解決というか別の方法で回避しました.
QAbstractItemDelegateを継承してQAbstractItemDelegate::updateEditorGeometry()を再実装したクラスを作りました.
647 :
デフォルトの名無しさん :2013/10/23(水) 07:28:10.91
Mac/Win両対応させる目的として、 CocoaとMFCを使わない理由は何ですか? Qtは使ったことありませんが、いずれにせよ各ネイティブのコーディングは避けられないですよね?
648 :
デフォルトの名無しさん :2013/10/23(水) 07:44:44.04
>>647 つづき
Qtのベンダーや関連サイトなどを見ればいろいろとメリットが並べられていますが、一度通ればそれが資産となりクリアできるようなことばかりのような気がします。
各OSが提供するフレームワークを直に操作する方が気持ちいい感じがします。
プラットフォーム依存コードを書くことは悪意をもって意図しなければ全体の1%も無い。そういう風にするのが目的のライブラリだから その1%のために100%を投げ捨てて、2つの(Linux含めれば3つか)全く違うFWに車輪の再開発してそれを保守するメリットがあるかどうか。 自作部品も結局Qtにある機能だったら、ただの劣化か同程度の部品を作って終わりになる。 うまくいけばほんのちょっとはパフォーマンスいいかもしれないけど、コストにはあわないレベルだろうね
650 :
デフォルトの名無しさん :2013/10/23(水) 10:13:32.11
UIパーツとのデータのエクスチェンジ部以外はC/C++で記述すれば基本的に共用出来ると思います。 UIパーツごとの資産があればほぼ流用で間に合います。 特にMacのXcodeの生産性はとても高いです。
651 :
デフォルトの名無しさん :2013/10/23(水) 10:19:46.65
もちろん、資産のあるなしが分かれ目でしょう。 ゼロからスタートするなら話は別です。
652 :
デフォルトの名無しさん :2013/10/23(水) 10:23:33.34
Qtの通常の商用ライセンスは1プラットフォーム30万/年だそうですが、次年次更新料はおいくらなんでしょうか?
>>651 それはQt云々ではなく、資産があるのにわざわざ別のものに乗り換えるメリットがあるかどうかってだけの
話じゃないか。これまでご苦労様ってことだよね。
Qt5以降 デフォルトでやたらdll同梱しなくちゃいけなくなったけど 1つのdllにまとめる方法とかって無いの?
655 :
デフォルトの名無しさん :2013/10/23(水) 14:34:29.80
多少骨でも身軽でいたい。
656 :
デフォルトの名無しさん :2013/10/23(水) 16:10:52.32
>>654 upx
昔のMFCはキモすぎてQt使いだしたらもう絶対MFCとか使いたくないと思ったんだけど、 最近のMFCはまともになったの?
Qt5.2 Beta QtCreator 3.0 Beta
659 :
デフォルトの名無しさん :2013/10/24(木) 08:48:22.50
QSpinBoxで、ボタンによる編集なのかエディット部分による編集なのか、イベント側で判断できるのでしょうか?
MFCを使う理由がないなあ。 ほとんどはQtで事足りるし、 c++11xになってstlもかなり良くなったしな。
>657 そんなことされたら、キモいのを我慢して必死で作成した 過去の資産が全部使えなくなるから困る。
マジか
過去の資産とか言ってる奴にかぎって大した資産でも無い場合がほとんど そういう奴のコードは汚いから書き直した方が良い
666 :
662 :2013/10/25(金) 00:42:23.78
大した資産でないというのはその通りかもしれんが、どんな酷いコードでもそこからビルドされたものが稼働しているというのは相当な存在感がある。 現実的にはコードを手直しする工数も なかなかとれないから過去のプロジェクトをそのまま使用できるのは重要。 ちなみに、私はMFCが嫌いなので 自分の意思だけで使用するフレームワークを決められるならMFCは絶対に使いません。
>>666 MFCが無くなるかもしれないような状況にならないと、わざわざ乗り換える意味はあまりないだろうね。
しかしアンタが書いてきたような事情があるんなら,いきなり
>>647 ,648みたいなカキコすると、ただQtを
貶しに来たと思われても仕方ない。
>>667 俺の想像だけど、
>>647 はMac寄りの人なんじゃないかと思った
「Mac用アプリを作るならQtよりCocoaで作った方が気持ちいいと思います」なら「あーそれは確かに」って思うし
そこにMFCが絡むと???ってなるけどw
MFC使えばQtはいらない(ドヤッ) 死ぬほどワロタwww
672 :
デフォルトの名無しさん :2013/10/26(土) 09:53:59.89
MFCが未だに使われている理由はMSだからだぞ 商用で使用される場合、無料で配布されているライブラリほど恐いものは無い いつ打ち切られるかわからないし、どういう挙動を示しても文句は言えない
MFCは生のWin32APIを触ったほうがマシってくらいに不完全なんだよなあ 最近はどうか知らないけど今後もMFCが保守されるとは思わないし
インタープリタコンパイラやJVMすべてを否定した瞬間である。
もうやめてください 泣いてるC++/CXもいるんですよ
プロプライエタリなライブラリほど怖いものは無い 打ち切られたらお手上げだし、文句言ったところで挙動を直してくれるとは限らない
MSライブラリ大半を否定した瞬間である。
678 :
デフォルトの名無しさん :2013/10/26(土) 15:48:24.69
Qt程度のフレームワークなら一から書いたほうが楽だよな 他人のドキュメント読むのうぜーし
また大きく出たもんだね。やってもらおうじゃないの。 そういうのを車輪の再発明と言うんだよ。
後にC++界にその名を轟かすことになる678氏誕生の瞬間である
標準ライブラリとして採用されるわけですね
LinuxとOS Xを使ってるけど開発環境が統一できるから捗る
683 :
デフォルトの名無しさん :2013/10/27(日) 03:02:58.45
一人でqt規模のフレームワーク作ったらどれくらい時間がかかるんかな?
言語の選択が肝 C言語なら数年かかるがJavascriptなら数時間あればできる
まじっすか。数時間でできるものにNokiaは1億5000万ドルも出したんすか
686 :
デフォルトの名無しさん :2013/10/27(日) 07:29:45.86
数年もかかるかよ 長くて3ヶ月
687 :
デフォルトの名無しさん :2013/10/27(日) 07:31:41.96
JavaならOSごとに作る必要が無いから Cだと数年はマジだと思う
しかしもうQt5.2なわけだが もうみんなほとんどQt5に移行したんかね
OS毎に作る必要が無いって… OS依存のネイティブな部分までJAVAがサポートしてくれんの? Qtのフレームワークはかなりネイティブな部分まで弄ってるぞ
ここは釣堀かよw
qtって無料ですか?
>>692 JAVAだけじゃ書けないってことですね知ってます
>>692 すまん、JNIと勘違いした
JINIでネイティブな部分のめんどうみれるの?
696 :
デフォルトの名無しさん :2013/10/27(日) 11:19:12.06
697 :
デフォルトの名無しさん :2013/10/29(火) 07:45:24.96
Qt creator上から走らせると実行できるのに、出来たexeファイルをダブルクリックすると 「プロシージャエントリポイントInterlockedCompareExchange@12がダイナミックリンクライブラリから見つかりませんでした」 と出るのはなぜですか? ちなみにOSはWindows8、Qtは5.1.1、Creatorは2.8.1です。
>>697 Qtのインストール先の\binディレクトリにPATHが通ってないから。
Qt Creatorからだと子プロセスのPATHに上のディレクトリを追加してるから動く。
>>697 x64でビルドしたらx64のDLL、x86でビルドしたらx86のDLLが必要で
両方共に名前は全く同じだけど中身は別になる
700 :
デフォルトの名無しさん :2013/10/30(水) 23:41:24.04
701 :
デフォルトの名無しさん :2013/10/31(木) 16:40:29.45
JavaだのJavaScriptだの使ってると何をやってもあと一歩届かないということが どうしても解らないらしい連中がいるよな。 要求水準が相当低く、しかもそのことに気づいていない。 ブラウザ、データベース、3Dゲームほぼ全部、Photoshop等のペイントツールほぼ全部、 JavaScriptのエンジン、その他多くのLL、コンパイラ、 vim/emacs/Sublime Textなど主要エディタほぼすべて、 つかそもそもUNIXのコマンドほぼ全部、ドライバ、OS etc... 本当に重要なソフトウェアはことごとくC/C++で書かれているというのに せっかくプログラマなぞやっておきながら 上のほうのレイヤーで誰かの掌の中で踊らされているばかりとか、つまらんだろ普通に。
702 :
デフォルトの名無しさん :2013/10/31(木) 18:29:42.57
QTはJavascriptでも使えるけどね。 C++から使うより速度速いし。
>>702 速度は遅い。いい加減ことは言わないように。
704 :
デフォルトの名無しさん :2013/11/01(金) 20:18:37.92
楽しいぬO(≧∇≦)o
JSはCの2倍速い。 C++比では4倍。 JITによる高速化、メモリー確保の最適化によるボトルネックの解消。
706 :
デフォルトの名無しさん :2013/11/01(金) 22:39:59.77
JSすごくね? 新しいコンパイラ?
ネイティブより速いってJS用チップでも乗っているのかい
釣られてみるが、 JSがCの2倍速くて、C++の4倍速いって CがC++の2倍速いなんてあり得ないしなあ。 メモリ確保の最適化ってHPCのコードでも ない限りボトルネックになるようなことは ないんだけどな。
709 :
デフォルトの名無しさん :2013/11/02(土) 12:58:06.11
>>705 じゃ、じゃあ、QtQuickは普通のQtアプリケーションより、4倍速いんですか(≧∀≦)?
そりゃもうQuickだからな
昔から言うだろ、赤い物は3倍早いって
まあ、馬鹿が書いたC++が遅いってのはあるかもしれんな 同じ馬鹿にJSで書かせたら4倍早く動くかどうかはわからんが
で、
>>702 のバカはなんでC++より速いとか言い出したのかね
パターンマッチングでperlとC++を比較して、 perlが速いとか言ってるのと同じだな
自分はLinuxで開発してるけど、Macユーザもいるので Qt Mac Extrasには期待しておる 標準だとウンコみたいな見た目になるからな
見た目がうんこだと何か困ることでもあるのか? GTKは見た目も中身も糞だぞ
717 :
デフォルトの名無しさん :2013/11/03(日) 14:58:32.32
板違いの質問だったら、申し訳ありません。 Qt プログラムをコンソールから実行したいと考えています。 Qt Creatorで下記のような単純なコンソール・プログラムを作成しました。 [ソース]------------------------------------------------------------ #include <QCoreApplication> #include <cstdio> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); std::puts("こんにちは。 QT world\n"); return a.exec(); } コマンドプロンプトからexeファイルを指定して実行した時は、 問題なく動作したのですが、mintty(MinGW+MSYS)から実行すると、 コンソールに何も出力されません。 mintty等の端末エミュレータでqtプログラムを実行する事は 不可能でしょうか? 無知で申し訳ありませんが、アドバイス頂けると助かります。 [環境] Windows 8 Qt creator(2.8.1) Compiler : MinGW g++ (同梱ではなく、別途インストールしたもの) 端末エミュレータ: mintty (msys-mintty)
.proの中身を貼れ
719 :
717 :2013/11/03(日) 15:30:51.01
>>718 レスありがとうございます。
.proファイルを添付します。
[QT_helloworld.pro]
#-------------------------------------------------
#
# Project created by QtCreator 2013-11-03T13:41:23
#
#-------------------------------------------------
QT += core
QT -= gui
TARGET = QT_helloworld
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app
SOURCES += main.cpp
お手数ですが、アドバイスを頂けると幸いです。
ソースコードのエンコーディングとMSYSのロケールは?
721 :
717 :2013/11/03(日) 17:06:08.92
>>720 ソースコードのエンコーディングを確認したところ、UTF-8です。
一方、msys-minttyのロケール設定ですが、文字化け防止のため
システム環境変数で変数名:LANG 変数値:ja_JP.UTF-8
としています。
(※utf-8で記述したcppソースコードをminttyで表示するための
応急処置でやってます)
この設定だと問題がありますでしょうか?
AttachConsole(ATTACH_PARENT_PROCESS);
723 :
717 :2013/11/04(月) 07:44:01.86
>>722 レスありがとうございます。
下記プログラムを作成し、ビルドしようと思ったのですが、
エラー: 'AttachConsole' was not declared in this scope
AttachConsole(ATTACH_PARENT_PROCESS);
と出ます。Win32apiをMinGWで呼び出す方法が正しく理解できてない
からだと思います。自分でもう少し調べてみようと思います。
ご協力ありがとうございました。 ^
//#include <QCoreApplication>
#include <cstdio>
#include<windows.h>
#include<wincon.h> //#incluede<WinCon.h>
int main(int argc, char *argv[])
{
// QCoreApplication a(argc, argv);
AttachConsole(ATTACH_PARENT_PROCESS);
std::puts("QT world\n");
// return a.exec();
return 0;
}
::AttachConsole(ATTACH_PARENT_PROCESS);
std::putsのstd::ってnamespaceだよな。 attachconsoleにも何か要るんじゃね?
doxygenのプラグインは自分でビルドしないといけないのだろうか
727 :
デフォルトの名無しさん :2013/11/04(月) 13:37:16.69
開始前に if(AllocConsole()){ freopen("CONIN$", "r", stdin); freopen("CONOUT$", "w", stdout); freopen("CONOUT$", "w", stderr); } 終了前に FreeConsole();
そもそも .proの CONFIG += console が、Windows用でAllocConsole,FreeConsoleを行う オプションじゃなかったっけ?
バインディングにCがあるんですが実際使っている人はみんなC++じゃないんですか?
CONFIG += console を付けるのと付けないのとではメッセージの出力場所が変わるらしいから その関係だろう 自前できちんと出力場所を設定すれば表示されるはず
731 :
デフォルトの名無しさん :2013/11/05(火) 18:24:57.01
Qt5からqftpが廃止されてしまってQNetworkAccessManagerを推奨しているみたいなんですが、 サーバー上のディレクトリのファイル一覧とかってQNetworkAccessManagerで取れるんですか? とれないなら、どうやって補ってるんですか?
SCP/SSH推奨
734 :
デフォルトの名無しさん :2013/11/05(火) 18:59:12.90
>>732 >>733 レスありがとうございます。
ssh/scpやurl先見てきたんですがつまりどういうことなんでしょうか?
unkonow
737 :
717 :2013/11/05(火) 22:22:33.63
>>724-730 レスありがとうございます。717です。
msys-minttyからプログラム起動した時にも標準出力に
文字列を出す事ができました。
原因は初歩的な思い込みでした。お騒がせして申し訳ありません。
<原因>
command promptの場合:明示的にflushしなくて標準出力が実行される。
msys-minttyの場合:明示的にflushすれば標準出力が実行される。
(ex.)
std::puts("こんにちは。QT world!\n");
std::flush(std::cout);
両者の挙動が異なるため、「msys-minttyでは標準出力ができない」と、
勘違いをしておりました。標準入力も問題なく使用できました。
以上、お手数をお掛けしました。
738 :
デフォルトの名無しさん :2013/11/05(火) 22:40:40.91
>>735 実際にそのページのサンプルプログラムを動かしてみたのですが、
Protocol "sftp" is unknown
の表示がでて、駄目でした。
どのような対策とっていけばいいんでしょうか。。。
まさかflushしてないってオチはないよなー、 そんな間抜けは俺だけorzと思ってたが、お前もかw
741 :
デフォルトの名無しさん :2013/11/06(水) 15:01:52.04
>>739 すみません、flushとはなんですか。。。?
>>740 オープンソースというやつでしょうか?
qsshやqsftp等で調べていると何度もこのURLに遭遇するのですが、
いまいち使い方がわかりません。
どのように使えばいいんでしょうか?
馬鹿には無理
Qtに限らずC/C++から使えるFTPクライアントライブラリを探せばいいじゃん
馬鹿には無理って書き込んでも楽しくないよ
基地外は伝染する その感染力は半端ない 流入して来てる可能性もあるが もともとの住民が感染して 基地外が増殖している可能性も否定出来ない
イベントループのアイドル状態のときに処理を入れたいのですがどうしたら良いでしょうか
ゲームみたいに動きっぱなしで良いならQTimer::start(0)
749 :
デフォルトの名無しさん :2013/11/10(日) 18:39:03.87
QtってC++なのになんでもっさりなの? C#みたいなチャライ言語で作られたものよりドンくさいってどうよw
MinGW使ってない? VC++のコンパイラだとそうでもないよ。
デザイナでできる事が多い分どこまでをデザイナで開発するか悩む フォームの編集、アクションの作成、シグナル/スロットの作成 どこまでデザイナ使ってる?
なんかこのスレの人って結構なんでも丁寧に答えるよな 人間ができてるというか
「もっさり」ってよく聞くけど、ちゃんと実験して数値化できないのかな 何が悪いのかはっきりしないと改善しようもないし MinGWで性能落ちるのはわかるけど「もっさり」にどれくらい影響があるのかとか
754 :
デフォルトの名無しさん :2013/11/10(日) 23:56:54.28
そもそもC++がもっさりだろ C使え
755 :
デフォルトの名無しさん :2013/11/11(月) 00:01:41.97
JSのほうが速い
しってた
>>751 フォームの編集(*.ui)だけだな
他は結局ソースに手を入れることになるので
もっさり? openframeworksはえ〜ぞ 何するかしらんが
>>757 ありがとう
wiresharkのソース見てみたらuiで全部やってるみたいだから真似することにしたわ
>>753 ランタイムがでかいから、起動するまで時間がかかるので、もっさりのイメージが
あるけど、起動後はもっさりではないんじゃないか
761 :
デフォルトの名無しさん :2013/11/11(月) 23:56:38.23
.netのもっさりが嫌でC++使ってんのに・・・ やっぱりWinで作るならMFCかWTLしかないのかしらん
どうせdebugモードのランタイム使ってるんだろ
もっさりとか曖昧な表現しか使えない奴は本当に遅いCPUでQt使ったこと無いんだろ Cortex以前のARMとか
そんなマイナーな世界の話で遅いと言ってんのか。
wxWidgets最強
.netも7なら遅いと思わなくなってきた
>>761 それは.netで感じるもっさりをQtでも感じてるって意味?
もしそうなら具体的にどういうところがもっさりなのか聞きたい
実際にもっさりするのであれば描画の遅延あたり?
マウスクリック検知で色変えるようなアプリ用意して並べて動画で検証とかすりゃ解るかなあ
ここ何スレか、もっさりとかMFCがとか言うの多いね。同じ人かどうか分からんけど こういう人って、どこにボトルネックがあるか真面目に調べる気が感じられないんだよなあ・・・ あ、でも何度も相談乗ってあげてる人はいい人だと思います
769 :
デフォルトの名無しさん :2013/11/12(火) 22:21:47.65
例えばプロジェクト名がtestで、main.cppからビルドしようとすると "testmain.cppが見つかりません"ってエラーになるの何でやねん???
消えろカス
771 :
デフォルトの名無しさん :2013/11/12(火) 22:52:08.72
ヤフれカス
772 :
デフォルトの名無しさん :2013/11/12(火) 23:01:03.91
ビングれ少年。
特急列車乗っちゃってろよ
774 :
デフォルトの名無しさん :2013/11/13(水) 21:18:32.96
>>755 いい加減なことをいってはいけない。JSの方が確実に遅い。
>>769 プロジェクトファイルをテキストエディタで開いてファイル名を修正して保存
Windows上のQtって、 例えば、ボタンのテキストって、UTF-8を受け取ってくれましたっけ?
777 :
デフォルトの名無しさん :2013/11/18(月) 17:49:15.89
>>776 Qt4ならsetCordecForCStringsを呼び出せば受け取る。Qt5はUTF-8ならば受け取る。
C++とQMLに分離してからQtは終わった。 QMLに傾倒したUbuntuもしばらくすれば見捨てるだろう。 Qtがよかった時代ももうすぐ終焉だ。
お前がそう思うならそうなんだろう
>>779 「お前ん中ではな」がついてないと意味が正反対だな
781 :
デフォルトの名無しさん :2013/11/18(月) 18:18:21.69
漏れもそう思うお
>>779 お前は評価力、判断力、技術力すべてゼロだな。
C++11以降のプログラミング上の利点をQMLでは明示的にはまったく利用できなくなったのはどうしようもない改悪だよ。
このキチガイ早くどっか別のスレに行ってくれないかなぁ
785 :
デフォルトの名無しさん :2013/11/18(月) 18:50:40.45
もーケンカすんなよ
QMLは親会社がNokiaでiPhoneとAndroidができないときに 苦し紛れに作っただけのおもちゃ
NOKIAもSymbianが4まで行けばQtが標準で載る予定だったんだよな。残念だったわ。
JavaScriptはインタプリタだし動的型付けだしどっちかっつーと関数型言語よりなんだから C++11/1yのフィーチャーを使いたいのに使う理由がないよって言いたいんじゃない?
UI/UX担当が、jsを使うんだからQMLは妥当
QtScript→QSA→QMLの流れはTrolltech時代から続く正統な進化だと思うのだが 少なくともNokia時代の突然変異では無いな JavaScript(ECMAScript)は関数言語的*にも*使える、数多ある言語の中でも、 最も手続き型的な言語の一つだろう
794 :
デフォルトの名無しさん :2013/11/20(水) 22:52:53.00
QtでやるくらいならMFCのましだろ 情報量がパネーし 2chで聞いても二言目にはヤフレカス・・・
JavaScriptはゴミ みんなが使うのをやめたがっている JavaScriptを使うQMLもゴミ
>>794 >QtでやるくらいならMFCのましだろ
ありえね〜
QMLでやるくらいならMFCのほうがまし
そこに限っては同意してやってもいい
Qtスレはちょくちょくレスがあっていいなー。GTK+スレはさびしい……
GTKはスレ自体ないような
MFCなんてXlib並に低レベルで今日日、誰も触らない html5の方が遥かにマシ
QtとMFCとhtml5ってあんまり一緒に語るもんじゃないよなぁ・・・
804 :
デフォルトの名無しさん :2013/11/21(木) 23:04:41.81
QSocketでFTPコマンドを送信してリモートのファイル一覧を取得が上手くできません。 接続した後にUSER,PASSを送信してログイン完了の反応は確認できています。 その後に、CWDとPASVを行っています。 ですが、LISTコマンドの場合は応答がありません。 一覧を取得するコマンド以外(作成や更新時刻の取得等)はちゃんと反応が得れます。 ですので、反応を少し待とうと waitForReadyRead(3000); を加えると、エラーで Network operation timed out と吐き出されます。 どうすればいいのでしょうか?
FTPはオワコン
うんscpつかおう 使えんの?
ソースが公開されてるQtと非公開のMFCを比べてる時点でお察し
808 :
デフォルトの名無しさん :2013/11/22(金) 18:32:36.40
非公開のMFC
809 :
デフォルトの名無しさん :2013/11/22(金) 18:34:29.48
初心者ですよろしくおねがいします。 ソースが公開されてないMFCはどこで買えるんですか?
コンビニ
誰も知らないと思ってデマを広める気か
一応無料のエディションにMFCが付属していたことはないから「公開」とは言えんのじゃないかしら まあソースコードもセットなの知らんでの発言だろうけど
「MFCが恋しくない者には心がない。MFCに戻りたい者には脳がない」 --- ウラジミール・ゲイツ 「MacAppは死んだんだ。THINK Class Libraryだって帰っては来ないんだ。 もうPowerPlantの時代は終わって、君も人生と向き合う時なんだ」 --- チャーリー・ジョブズ
814 :
デフォルトの名無しさん :2013/11/28(木) 00:16:55.16
Qt3.4 ですが、 QListView の中に、編集可能なテキストを作るにはどうすればいいですか?
815 :
デフォルトの名無しさん :2013/11/28(木) 00:20:44.45
できません
816 :
デフォルトの名無しさん :2013/11/28(木) 18:42:02.86
ダウンロードしてみてサンプル動かしてみんだけど コンパイルエラーでError: cannot open C:\Users\〜〜って出てくるんだけど何が問題なんだろうか もしかしてユーザー名に漢字があるとダメ? ちなみにvc2012,opengl,64bit版です。
そりゃまあだめやろね
>>817 openするファイルってどこで変えるんだか分かる?
とりあえずOSの基礎くらいから勉強してみれば?
漢字Talkですねわかります
>>819 いやだってこのエラーでググってもあんまりhitしなくて
英語の環境設定のチェックを外せばできる云々ってのしか見つからんからよう分からん
>>3 にプロジェクトは日本語パスNGって書いてあるね
824 :
デフォルトの名無しさん :2013/11/29(金) 08:44:18.76
そんな問題いまだにあるのか? UTF-8決め打ちでMBCSでアクセスしとんのけ? いい加減WCHAR使えよ
>>824 x いまだに問題がある
o いまさら変えられない
wchar_tはやめようぜ、環境によって長さが違うのはもうカンベンだわ。 UTF-32(UCS-4)にして、char32_t の文字変数で使おうず
Qt の中の人に言わないと意味無くね?
楽天kobo並だな。 まあ、あれ本体の中はQtだけど。
windowsがパス名をutf8で返してくることは永遠にないんじゃね
wchar_t が16bitでUTF-16なのはWindowsの世界だけだと早く気付け マルチプラットフォームのライブラリが、そんな実装依存の代物を使うわけないだろ
>>793 関数型とは無名関数ぐらいしか共通点が無いんだけど
パターンマッチやリストの評価、無制限の再帰とか機能がたりな過ぎるんだけども
未だQt4+OpenGL使ってるんだが、Qt5の3D関係ってどうなってるの?
835 :
デフォルトの名無しさん :2013/12/05(木) 11:03:49.04
Qcanvas
IME関連のAPIがQt4から変わっててわからない
QtCreatorのデザイナ上でQStatusBarにウィジェットを追加するにはどうすればいいんですか?
>>837 コードを書く。フォーム編集ではできないよ。
>>833 同意。JavaScriptを選んだのはQtの失敗の始まり。
>>833 パターンマッチやリストは関数型言語の構成要素では無いよ
再帰の制限は実装の話であって言語としての制限ではない
first class function であるかどうかだろ
>>840 関数型言語は無限再帰を言語として保証してんだから言語として保証してないのはちょっとねぇ
>>842 JavaScriptは言語仕様として再帰の制限なんて無いよ
844 :
名無し募集中。。。 :2013/12/08(日) 01:21:58.41
C++もXSLTも関数型言語では無い
理由は
>>841 が書いてある通り
>>843 だから関数型言語とは言いづらい。
基本的な処理が保証されてないからね。
末尾再帰やらファーストクラス関数やら参照透過性やら多値やらモナドやら? 何の話をしてるのかよくわかんないけど、あんまりQtの話と関係ない気がします続きは別スレで!
知ってる単語並べただけか おまいが一番うざい
ごめんね 自重する
ごめんなさい・・・
久しぶりに色々アップデートしようと思ったらNecessitasってQt本体に取り込まれたの?
取り込まれた
そかそかさんくすこ
855 :
デフォルトの名無しさん :2013/12/15(日) 21:45:16.27
Qt Installer Framework って何をするものなのでしょう? どんなことができるのでしょう?
…。
Qt Installer Frameworkって便利だけどインストーラ本体のサイズが12MBってとこで敬遠しちゃうよね Qt本体みたいに何百MBもあるパッケージなら誤差だけど、一般的なソフトウェアはそんなデカいパッケージ持たないし
ん? IEのインストーラーとか500kBくらいだったりするが
何で突然IEのインストーラが出てきたんだ? 遠回しにQtIFを馬鹿にしてるのか!?
860 :
デフォルトの名無しさん :2013/12/19(木) 23:51:30.23
PyQt4にてボタンからファイルダイアログ開こうと思って dialog = QtGui.QFileDialog.getExistingDirectory(self, 'Open Directory', '/User/') て適当に書いて実行しようと思ったらそこでType errorが出て argument 1 has unexpected type 'クラス名' って返ってきたんですが、どういう意味で どうしたらよいのでしょうか?
QPlaneTextEditに「数字\t数字」を出力して、2つの数字コピペして Excelの別々のセルに貼っつけたいんだけど、QPlaneTextEditからコピペしたら 1つのセルに「数字[ tab ]数字」が入力されちゃって困ってます どなたか解決策あれば教えて下さい…!
>>861 Excelに貼り付けないでテキストエディタに貼り付けてもそうなるの?
>>860 selfの型があってなさそうだが。
863 :
デフォルトの名無しさん :2013/12/20(金) 20:44:51.34
>>862 ありがとうございます
エラーはなくなりました。
でも親ウィジットが表示されずいきなりファイルダイアログに・・・
>>862 メモ帳に貼り付けると「数字[ tab ]数字」が貼り付けられます
一応、Qtアプリ →(コピペ)→ メモ帳 →(コピペ)→ Excel でやれば別々のセルに入力っての出来るんですが…
どうにかメモ帳挟まずにやりたいんです。どうにかなりませんかね…?
QTextEditでもやってみましたが、QPlain〜と同じような状況です
メモ帳のテキストコピーがどんなデータが持ってるかをバイナリ配列デバッグ出力して見る それと同じデータになるようにQPlainTextEdit からコピーするときにクリップボードの中身を置換する
>>864 Excelで、「形式を指定して貼り付け」だったかでクリップボードのタイプが分かると思う。
それをQtからのときとメモ帳からのときで比べてみたらどうだろう。
クリップボードにHTML形式が含まれているからだな 自前でplainTextをクリップボードへ突っ込めばいい
>>865 >>866 >>867 レスありがとうございます
Excelで見てみたところ、おっしゃるとおりQPlainTextEditはHTMLで出力されているようでした
一応ググりまくってみたんですが、QPlainTextEdit(QTextEdit)からHTMLを
純粋なテキストデータで出力する方法はなさそうですね…んーあると嬉しいんですが。
Ctrl+Cのショートカットも書き換えられたら最高ですが、とりあえずクリップボードの中身を置換するよう頑張ってみます。
ありがとうございます
QPlainTextEdit::appendHtml ( const QString & html ) [slot] QPlainTextEdit::appendPlainText ( const QString & text ) [slot] 試してないけど この2つの挿入の仕方によって持ってるデータが変わるのかもね
870 :
デフォルトの名無しさん :2013/12/22(日) 04:13:44.73
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT()); connectでクリップボードの変更を補足できる 自アプリがアクティブの時にだけ置換処理すりゃいいかな そういやQPlainTextEditからテキストコピーした時に メモ帳にhtmlタグ無しのテキストを貼り付けられるってことは htmlタグの付いてないテキストもどこかに保持してるってことなんだっけ ブラウザでページ上のテキストをコピーした時もhtmlタグ付きのテキストを保持してたような記憶がある
質問です 元々MinGW・Qt4.8を想定して作られたソースコードをVS2010pro・Qt5.20でコンパイルし直したところ、 処理時間が以前の10倍から20倍にまでなってしまいました。 ググってみたところ4から5に移行した際にQAccessibleに問題があったらしいのですが、それだけでここまで処理時間に差が出るものなのでしょうか
最適化かけわすれとかない?一応
>>871 で初めて5.2がリリースされてたことに気づいた
しかもすでに1週間たっていたとは
QAccessibleの問題はQt5.1で直ってるはず
>>870 text/plainとtext/htmlの両方がD&Dのコンテナに入っている。
関係ないけどD&Dとかアンドゥってどうやって実装すんのか分けわからん みんな複雑にポインタの関係性が絡んだオブジェクトをピックアップしてちょちょいとシリアライズしちゃってんすか
難しい言葉覚える前にドキュメントを読めるようになろうね
879 :
デフォルトの名無しさん :2013/12/22(日) 20:33:15.50
質問させてください。
http://s1.gazo.cc/up/71958.png こういう演奏モニタのGUIをQTを使って実装したいのですが、
どのQtのGUIクラスを使って実装すればいいかわかりません・・
鳴っている音の鍵盤の色を変えたいのですが、鍵盤の1つ1つをQWidgetクラスにするような
感じになるでしょうか。
良いやり方があったら教えていただけませんでしょうか。
よろしくお願いします。
880 :
880 :2013/12/22(日) 20:35:58.99
Qtは関係無いような。。。。 TableViewに鍵盤群のWidgetをデリゲートで埋め込むって言うのがぱっと思いついた。
そんなに数多くないしQWidgetの中にQWidgetを絶対posで配置するだけでいい
こういうものこそQMLにすべきだと思うが
>>869 どうも、挙げていただいた上は「HtmlをHtmlとしてHtmlで表示」に、下は「TextをTextとしてHtmlで表示」するようです
つまり、上は<Br>が改行に、下は\nが改行になるようと…
>>870 ありがとうございます!完璧です!お陰でうまくExcelに入力できるようになりました。
ただひとつ、自分がアクティブなウィンドウかどうかを判断する方法がどうしても見つかりませんで、
アプリケーションを起動していると、かならずコピーをText化してしまいます
Webブラウジング中とかにコピーしたらタスクバーが光るくらいで、別に問題はないのですが…
最後にもう一歩ヒントいただけると助かります…!
>>876 そのD&Dコンテナの中身のペースト時の優先順位って変えられるものなんでしょうか?
885 :
884 :2013/12/23(月) 01:31:53.12
>>870 …あ、すみません、自己解決しました!
クリップボードの監視の後に、アクティブかの判断したら良かったんですね。
逆でやろうとしてどうしてもダメでした。ありがとうございました!
>>884 D&Dコンテナに入っているもののどれを使うかは受け取る側が決めます。
例えば画像とそのファイル名が入っていたら、
どちらか片方あるいは両方取り出すかは受取側のコードの書き方次第です。
888 :
879 :2013/12/24(火) 02:35:20.74
レス頂きありがとうございます。 >TableViewに鍵盤群のWidgetをデリゲートで埋め込む >QWidgetの中にQWidgetを絶対posで配置 >QML >Graphics View。 なんかやり方何通りもあるんですね。。 質問ばかりで申し訳ないのですが、それぞれどんなメリット/デメリットがあるのでしょうか。 ちなみに、この演奏モニタのウィンドウをマウスで拡大/縮小したら 1つ1つの鍵盤の大きさも比例して拡大/縮小するような感じしたいと思っています
キー1個1個を子widgetに分割するってんなら無駄が多すぎるから止めた方がいいと思う
QWidgetは結構リッチなクラスだからそういう使い方には向いてない
代わりにQWidgetを継承したカスタム描画クラスを作って、QPainter::drawRectとかでゴリゴリ描いていけばいい
俺だったら横1列を1個の描画クラスで実装して、それを必要なだけ作ってQVBoxLayoutに放り込むかな
リサイズは描画クラスをリサイズできるように実装しておけばあとはQScrollAreaで簡単に実装できる
画像と全く同じものならそれで十分作れるから、Qt初心者なら無理して難しいものに手を出さなくていいと思う
というかまずはそのレベルのものが作れるようになってから手を出せばいいと思う
QWidgetを継承して描画クラスを作る方法はこの辺を参考に
http://qt-project.org/doc/qt-5/qwidget.html#paintEvent http://qt-project.org/doc/qt-5/qpainter.html あとQMLは特に初心者にはオススメしない
QMLの中身云々以前にまだ公式以外のドキュメントが少なすぎて手探りで作る羽目になる
890 :
884 :2013/12/25(水) 05:45:40.87
>>887 なるほど、Excelに渡してる以上こっちからは特に何も出来ないと…
わかりやすくどもです!
つーか、>866でいいんでね?
892 :
デフォルトの名無しさん :2013/12/26(木) 03:19:52.40
QwidgetにあるプッシュボタンからQFiledialogだしたくて コネクトで def opendialog(self,Form): dialog = QtGui.QFileDialog.getExistingDirectory(Form,"Open Directory", "/User/") dialogopen = open(dialog) data = dialogopen.read() self.folderpath.setText(data) dialogopen.close() こんな風にしたら、テストすると、いきなりダイアログが出てきてしまいます。 どうしたらよいのでしょうか
プッシュボタンのSlotに書かないとダメでしょ。 とりあえず、デザインパターン、Signal-Slotの理解からだな。
894 :
デフォルトの名無しさん :2013/12/26(木) 12:01:24.01
>>893 すいません 説明のしかたが悪かったです。
self.pushbutton.connect(self.searchfolder,
QtCore.SIGNAL("clicked()"),
self.opendialog(Form))
してから
>>892 ですねすいません
self.opendialog(Form) この記述をした行で実行されてる 引数に渡すのものは、「関数が収まってる変数」なのでは
896 :
デフォルトの名無しさん :2013/12/26(木) 19:44:34.70
>>895 OD = opendialog(Form)
として処理してみても 結果は変わりませんでしたが
関数を実行する記述と 変数を渡す記述の違いをわかれ
久しぶりに清々しいまでのカスが来たね
899 :
デフォルトの名無しさん :2013/12/29(日) 23:39:18.94
どの引数か教えていただけると助かります
self.pushbutton.connect(self.searchfolder, QtCore.SIGNAL("clicked()"), self.opendialog)
901 :
879 :2014/01/02(木) 22:33:31.23
>>889 ご丁寧に解説いただきありがとうございます!
教えていただいた方法で実装してみてそれっぽいのが出来ました。
QWidgetを鍵盤の数分だけnewするのはさすがにオーバーヘッドとか
メモリの消費量がでかすぎそうですかね・・
また質問させていただくこともあるかと思いますがよろしお願いします。
902 :
879 :2014/01/04(土) 23:23:56.94
QPainter で分からないことが出てきましたので質問させてください。 前述の演奏モニターの実装で、QPainterを使って大体描画ができたのですが、 QPainterのdrawPolygon()などのメソッドは paintEvent(QPaintEvent *)メソッド内でしか呼べないのでしょうか?? 例えば演奏中に打鍵された鍵盤を青色に反転させたい場合 paintEvent(QPaintEvent, color) のようにpaintEventの第二引数で色の情報を渡そうとしてみたのですが paintEventに第二引数をつけてオーバーライドすると drawPolygonのようなメソッドがちゃんと動かなくなるようで、 何も描画されなくなってしまいました。 解決方法を教えていただけると幸いです
ヘルプに書いてあるだろ
>>902 QWidget::paintEventはイベントハンドラだから、自前のコードから直接呼んでも描画はされない
描画を更新したいときはQWidget::updateを呼んで、イベントループに再描画を促す
当然引数を増やすのは難しいので、打鍵状態は描画クラスのメンバ変数等を経由して渡す
905 :
879 :2014/01/05(日) 03:42:01.90
>QWidget::paintEventはイベントハンドラだから、自前のコードから直接呼んでも描画はされない 直接呼び出しても描画はされるみたいですよ?? 自分は直接呼んでしまってましたが、本来はupdate()を使うのですね >当然引数を増やすのは難しいので、打鍵状態は描画クラスのメンバ変数等を経由して渡す うーむやっぱりそうするしかないんですね・・ 実装的に綺麗じゃないのであんまりやりたくないのですが・・。 調べていたらこのスレの一番最初の方にも同じような質問があって 同じような回答がついていました。 ひとまずこの方法でやってみます。ありがとうございましたm(_ _)m
『描画は(保証)されない』 動くならこれで大丈夫だろうという発想はプログラマには御法度だぞ 折角ピンポイントにURL貼ってくれてるんだからそれくらいは全部熟読してから手を付けよう
オーバーロードとオーバーライドの区別も出来ない奴に実装のきれい汚いがわかるのだろうか
>>879 はなんとか動くものはできるんだろうが、
コードはひどいものになりそう。
そもそも
>>paintEvent(QPaintEvent, color)
なぜイベントハンドラに複数の引数をもたせよう
と思うか不思議。なんかC言語しか触っていない
プログラマっぽいな。クラス概念が理解できてい
ない感じがする。
汚ならしい引数追加して本人は綺麗な実装のつもりというのがアイタタタ
商用版でなくLGPL版で実際に売られてるソフトってあるの?
911 :
デフォルトの名無しさん :2014/01/05(日) 15:07:47.25
人様からお金をとれるソフトをQtなんかで作るかよ Qtで作られてるってわかったら絶対買わないもん もっさり感がひどいし
またもっさりの人か いい加減もっさりしてる例を提示したらどうだ
く、QtCreatorはもっさりだからっ!!……
またMFC信者が荒らしてるのかな
流れを止めて申し訳ないが、Qt Creator 3.0になって 反応が速すぎて使いにくくなったな。逆にモッサリ感ががほしいわ。
Qt Windows、だと、QStringの中の人がUTF-16っぽいですぅ。 UTF-8にするには、どうすれば良いですか?
QtCreatorのエディタ補完機能の設定はオプションにある物しかダメなのかな? テンプレートとかマクロでも補完機能が効いてくれると嬉しいんだが。
いつのまに #include <qapplication.h> ではなく #include <QApplication> という書き方になったの?
浦島太郎かよ
10年間くらい離れていたもんで。
じゃあその10年の間になったんだろ
qt3からqt4で変ったのだと思う 変更点が大きかったので区別の為と標準C++ライブラリの形式に合わせる為に ただ、QApplication ファイルの中身は、#include "qapplication.h" なので これについては、どちらも同じ
qt4では、 QApplication app( argc, argv ); QWidget mainwindow; app.setMainWidget( &mainwindow ); 上のようなコードを書くと、次のようなエラーが出てしまうようになった。 error: ‘class QApplication’ has no member named ‘setMainWidget’
925 :
デフォルトの名無しさん :2014/01/23(木) 09:22:49.03
教えて下さいorz QTableWidgetのhorizontalHeader()がクリックされたときのイベントを取る方法が知りたいですorz
そのメソッドで取得したQHeaderViewのsectionClickedシグナルにconnectするだけ
927 :
デフォルトの名無しさん :2014/01/23(木) 18:00:39.55
ゴミゴミゴミゴミゴミゴミゴミゴミゴミwwwwwwwwwwwww
QTableWidgetのQTableWidgetItemって、 setIconとかできますが、 アイコンを文字の右にしたりできるのでしょうか?
localeをイスラエルで
FOSSのGUI周りがQtへ移行しつつあるけれど、最後にはGtkが勝つよ 兎に角、c++で書かれたものは何故だか失敗するような気がするんだ
gtkは糞
>c++で書かれたものは何故だか失敗する 頭が不自由な方でしょうか?
>ような気がする が笑うとこ
馬鹿には無理
936 :
デフォルトの名無しさん :2014/01/27(月) 18:17:50.73
QMLが失敗の原因になるだろう。
c++の仕様が、俺の理解を超える速度で進化している
>>931 へー
じゃあWindowsアプリは全部失敗作ですね
windowsアプリって大したものが見当たらない。とくにベクターに置いてあるものとか。
OfficeとかVisual Studioとか
Cやdelもあるじゃんw
>>937 C++の進化の恩恵をQMLは受けられない。
このような形で2つの言語を駆使しなければならなために近いQtは将来破綻して衰退する。
デスクトップPC自体斜陽なのにまだQML嫌とか言ってんのか GNOMEとか人いなくなったぞ
手っ取り早くGUI作れりゃ何だっていいっす ちゃんとメンテしてくれれば
Qt C++入門者です。
質問させて下さい。
win7x64環境で最新版Qt Online Installer for WindowsでQt5.2.0 +MSVC2010
をインストールしてexmplesのGUIアプリをReleseでビルドしてみましたが
実行ファイルを起動するとQt5Widgets.dll Qt5Gui.dll Qt5Core.dll...等のDLLがないとエラーが起きるので
手動で必要なDLL郡をビルド済みフォルダに移す事で起動はできるのですが
ビルド時に必要なDLL郡を自動で追加、もしくは.exeファイルに含む事はできないのでしょうか?
海外で同じような質問をしてる方がいて、回答者が下記のURLを見ろと言っていたのですが、
ttp://qt-project.org/doc/qt-5/windows-deployment.html#manual-installations-with-visual-studio-2008-and-2010 英語が苦手な僕にはちょっと難易度が高いです。
このドキュメントに書いてある事をすれば上記の問題は解決するのでしょうか?
まずやってみろよと言われると思いますが、出来るか出来ないかだけでもいいので、ご回答お願いします!
staticリンクにしる
>必要なDLL郡を自動で追加 C:\Windows\SysWOW64 に dll をコピー
PATH通せばいいじゃん
英語も読めないとか、ゆとりマジゆとり
ライブラリのリンクとか、Qt以前の問題だろ 初心者スレで半年ROMってろ
>> 943 デスクトップは無関係、QMLそのものがダメなんだよ。
>>950 その場合、ソース公開義務が発生するから気をつけて。
あと、949は言い方こそ悪いけど、ITやるなら英語はなんとかした方がいいよ。
別に翻訳ツール使ってもいいし、この手の英語は表現の幅が狭いから、のんとでもなる。
新言語と思えばいいよ。
>>953 これは便利ですね!
ありがとうございます!
>>954 はい、気をつけます
英語の方も翻訳機ばかりに頼ってしまって全然身についていないので
これから英語を見る時はもうちょっと学習しながら読むようにします
ありがとうございます!
>>951 すみません・・・(´;д;`)
956 :
デフォルトの名無しさん :2014/01/31(金) 23:28:49.13
まあ、ちょっと言い過ぎた
英語どころか日本語も書けないゴミ
!や顔文字が入ると本気でイラッとくるな 死ねばいいのに
まだ小学生かもしれないだろ 将来楽しみじゃないか
なんか沸点低い人多すぎないか
!や?の使い方がおかしいのはたいていちょん
英語読めないってことはLinuxのソースのコメントやドキュメント読んでクスッとしたり出来ないんだな可哀想に
>>954 LGPLはstatic linkであっても「ソース公開義務」が発生するわけでは無いよ
>>963 リンクに必要なオプジェクトを公開する必要があるからディスアセンブルすれば丸見えだよ。
うむ、まさにアホ
アホな俺にkwsk教えてくれ
968 :
デフォルトの名無しさん :2014/02/04(火) 18:59:10.89
積極的な義務か 拒否できないという消極的な義務かのちがい?
>>968 ディスアセンブル出来るかどうかとLGPLに何の関係が?
ライセンス云々の前にリンクの仕組みを理解できていないだけだと思う
973 :
デフォルトの名無しさん :2014/02/05(水) 10:58:13.65
QTableWidgetについて教えて下さい。 カレント・セルが描画範囲内にあるか判定して、 外だった場合、スクロールして描画範囲内にする、 といったことを行えますでしょうか?_?
tableWidget->scrollTo(tableWidget->currentIndex()); スクロールするだけならこの一行だけでいい カレントセルが描画範囲内にあっても誤動作はしないので判定は不要
有難うございました。
976 :
デフォルトの名無しさん :2014/02/12(水) 17:11:33.22
レイアウトで、 例えばボタンみたいな固定サイズのボックスを ハシから詰めていくプログラムは、 どういったものになるでしょう? レイアウト設定すると、レイアウト内を埋めようとボックスが大きくなってしまいます。。。
レイアウトにQSpacerItemを放り込む QtCreatorのデザイナならLayoutsの下のSpacers
978 :
976 :2014/02/12(水) 18:35:50.71
最近じゃ981超えても落ちないらいいぞ
まじまじ
だらら ら〜ら〜ら〜ら〜 ふぃりぃんぐるぅぶぃ〜^^v
982 :
976 :2014/02/13(木) 09:37:21.33
>サイズヒント って、Spacersにだけあるんですねwww(事故レス)
983 :
976 :2014/02/13(木) 11:59:49.65
さらに、独り言(アドバイスが欲しかったり)ですが、 Spacersって、動的生成はできないんですね?_・ 固定で使うしかないか。
>>982 サイズヒントはSpacersにとウィジェットの両方にある。
>>983 Spacersはレイアウトに入れるオブジェクトで、入れたり取り除いたりできる。
5.2.1でたね
987 :
デフォルトの名無しさん :2014/02/17(月) 18:23:21.75
Qt Creator 2.6.2/Win をwin8 64bitで使ってますが、 突然、Widgetにボタンさえはれなくなりました。 新規project作成すると、最初の一回だけはボタンはれたり。。。 Qt Creatorを再インスコしても治りませんが、 レジストリをクリーンにする必要もあるのでしょうか? この現象が発生する前、フォームの保存でフリーズする現象が発生していました。
988 :
デフォルトの名無しさん :2014/02/19(水) 18:57:32.94
QTableWidgetのhorizontalHeaderに、 追加描画したいのですが、簡単には出来ないのでしょうか? 「qheaderview delegate」でググってみましたが、なんだかすごいソースになってますね。
delegate関係はマジで馬鹿だと無理だからキツイわ
何をやりたいのか分からんし自分自身やったことないから分からんけど、 QTableView::setHorizontalHeader使えばゴリ押しで出来るんじゃないかな
991 :
デフォルトの名無しさん :2014/02/20(木) 16:43:41.04
QTableWidgetのセルの文字色って、同時2つの色とかに使えるのでしょうか?_? 書式付きテキストが入れられれば良いのですが。。。
992 :
デフォルトの名無しさん :2014/02/21(金) 10:22:05.47
QTableWidgetが、タッチパネルのドラッグでスクロールしません。 スクロールさせる方法はありますでしょうか?
>>991 QLabel *label = new QLabel("<font color=red>RED</font><font color=blue>BLUE</font>");
tableWidget->setCellWidget(row, column, label);
>>992 タッチパネルのある環境で開発したことないからよく知らんけど、QScroller使えば出来るんじゃない?
なるほど。ソースコード有難うございました。
996 :
デフォルトの名無しさん :2014/02/21(金) 22:22:40.26
プロジェクトをツリー構造にしたくて関連キーワードを調べたんですが、 .priファイルの作成方法がわからないです。 どうやって作ればいいんでしょうか?
手で書けばいいんじゃね?
998 :
デフォルトの名無しさん :2014/02/21(金) 22:45:48.75
Qt for NaCl
hoge
♪
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。