【RAD統合環境】 Qt 総合スレ 7 【Win/Mac/Linux】at TECH
【RAD統合環境】 Qt 総合スレ 7 【Win/Mac/Linux】 - 暇つぶし2ch262:デフォルトの名無しさん
10/04/21 15:11:54
㌧㌧㌧ >>260, 261

そうなんですかー。

後だしジャンケンみたいですが、やりたいことを最後に出します(藁):


char PathSeparator; //ライブラリのクラス変数(ファイルパスの区切り文字)

>PathSeparator = QDir::separator();
みたいな感じで、Qtからファイルパス区切り文字が欲しい。

解決策1:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QChar qc = QDir::separator();
PathSeparator = qc.toAscii();

解決策2:
QString qs = QDir::separator();
PathSeparator = qs.toUtf8();



263:デフォルトの名無しさん
10/04/21 16:00:06
関係無いけど、
どのOSでもQStringの初期値は、
>Unicode 4.0
なんだ?

264:デフォルトの名無しさん
10/04/21 16:13:04
>>262
なぁんだ。最初から結果は1バイトだってわかってるんじゃん。
それなら解決策1で良いし,

> QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

は必要ない。ASCII文字はUTF-8と互換性があるんだから。

265:デフォルトの名無しさん
10/04/21 17:49:58
UTF-8
UTF8
utf-8
utf8
どれが正しいの

266:デフォルトの名無しさん
10/04/21 18:11:36
Unicode Transformation Format-8

267:デフォルトの名無しさん
10/04/21 18:13:20
>QTextCodec::setCodecForCStrings

の初期値は何が良いんだろ。

268:デフォルトの名無しさん
10/04/21 18:23:51
>>267
ソースの文字コード

269:デフォルトの名無しさん
10/04/21 19:00:59
システムのロケール

270:デフォルトの名無しさん
10/04/21 21:01:25
qwebviewとqtextbrowerって何が違うの?

271:デフォルトの名無しさん
10/04/21 21:10:12
>>270
QWebViewには通信機能まで含まれてるから、インターネット接続環境があれば
それだけで外の世界のwebページにまでアクセスできる。
簡単なブラウザならすぐ作れるよ。

QTextBrowserはHTMLが表示できるだけなので、リンクが貼ってあるHTMLでも
リンク先が外の世界だと飛べない。ローカルファイルなら大丈夫だけど。

272:270
10/04/21 21:12:31
>>271
QTextBrowserで写真の表示/javascriptの対応を教えてください

273:271
10/04/21 21:17:18
補足。>>248が紹介してくれたここ↓にQWebViewでブラウザを作る例があるね。
URLリンク(qt-labs.jp)

274:271
10/04/21 21:20:56
>>272
ごめん。知らんので調べないとわからん。
写真は普通にHTML内に<img>タグでローカルの画像ファイルを指定すれば良いんじゃないの?

エラい人フォローよろしく。

275:270
10/04/21 21:24:33
>>273
ありがとう

276:デフォルトの名無しさん
10/04/21 21:48:36
>>272
QTextBrowser で使える HTML のタグはこちら。
URLリンク(doc.qt.nokia.com)
<img> が使えるので画像はOKだが、JavaScript はない。

軽量だが制限も多く複雑なページや動きのあるページには向かないのが QTextBrowser/QTextEdit
普通の HTML + JavaScript も動くがでかいのが QWebView
というイメージ。

277:デフォルトの名無しさん
10/04/21 21:56:43
>>272
>QTextBrowserで写真の表示/javascriptの対応を教えてください
URLリンク(doc.trolltech.com)
URLリンク(doc.trolltech.com)
を読めば分かる。

278:デフォルトの名無しさん
10/04/21 21:58:36
>>270
>qwebviewとqtextbrowerって何が違うの?
URLリンク(doc.trolltech.com)
URLリンク(doc.trolltech.com)
を読めば分かる。

279:デフォルトの名無しさん
10/04/21 22:01:55
>>247
>qtの解説サイトでお勧めはありますか?
URLリンク(doc.trolltech.com)
これを読めば分かる。

280:270
10/04/21 22:04:38
>>276
わざわざありがとうございます

281:デフォルトの名無しさん
10/04/21 22:49:45
qtの日本語解説サイトお願いします

282:デフォルトの名無しさん
10/04/21 22:59:10
>>281
>qtの日本語解説サイトお願いします
URLリンク(www.alc.co.jp)


283:デフォルトの名無しさん
10/04/21 23:02:56
demos/mainwindow の中に saveLayout で
geometory と state を保存している部分がありますが
これをメニューから実行するのではなく
アプリケーション終了時に自動でやりたいと思います
この場合 MainWindow::closeEvent() の中に書くのが妥当なのでしょうか?
他に的確な場所ってありますか?


284:デフォルトの名無しさん
10/04/21 23:07:45
>>283
URLリンク(doc.trolltech.com)
を読めば分かる。


285:デフォルトの名無しさん
10/04/21 23:42:36
>>284
出来ました
ありがとうございました

286:デフォルトの名無しさん
10/04/22 00:03:05
>>281
さすがにalcには載ってないねw
日本語で参考になるのは、

URLリンク(qtprogramming.s2.zmx.jp)

あたりかな。でも基本的に英語のドキュメント読むのは避けては通れないよ。
「を読めばわかる」の人が誘導してくれているけど、英語のドキュメント読まずに
聞いていると思われる人と、目的の解説が探せないで聞いていると思われる
人では明らかに対応が違ってるでしょ?


287:デフォルトの名無しさん
10/04/22 00:20:32
>>286
>さすがにalcには載ってないねw
英語のドキュメントを読もうともしていないということ。
>基本的に英語のドキュメント読むのは避けては通れないよ。
読めないなら他のことをやっても同じ。
>英語のドキュメント読まずに聞いていると思われる人と、
論外。
>目的の解説が探せないで聞いていると思われる人では明らかに対応が違ってるでしょ?
書いてあることを探そうとすらしていないのでは?

288:デフォルトの名無しさん
10/04/22 00:21:41
>>287
おまいは懇切丁寧でウィットの入った優しい返答の揚げ足をとって何が面白いんだ?

289:デフォルトの名無しさん
10/04/22 00:29:13
ここで質問すると作業が捗るので
見る見る品質が上がって行きます
2chは糞スレ糞レスも多いですが
まだまだ捨てたものではないです
人類の発展に貢献していると思います

290:デフォルトの名無しさん
10/04/22 01:48:23
肩の力抜こうぜ
適当な質問に適当に答えたり叩いたりできる場所だって必要さ

291:デフォルトの名無しさん
10/04/22 06:13:44
exe を複数起動するとウィンドウも複数出来てしまいますが
ひとつしか起動出来ない(もし exe を起動しようとしたとき
既に立ち上がってればそれがアクティブになる)ようにするには
どのようにコーディングすればよいのでしょうか?

292:デフォルトの名無しさん
10/04/22 06:31:01
>>291
URLリンク(qt.nokia.com)
を読めば分かるかもしれない。

293:デフォルトの名無しさん
10/04/22 10:02:03
QTreeWidget と QTreeView は
どう使い分ければよいのでしょうか?


294:デフォルトの名無しさん
10/04/22 10:12:56
わからないうちはQTreeWidgetでおk

295:デフォルトの名無しさん
10/04/22 11:49:41
URLリンク(randt.jp)

>Qtアプリケーションを作成していて、undefined reference to vtable for <Class Name>エラーが出るなら

エラーが出るんですが、Qtと関係ないクラスにも”Q_OBJECT”って要るんですか?
自作クラスの中のQt部品といえば、QStringとメッセージボックスくらいしか無いのですが。

296:デフォルトの名無しさん
10/04/22 12:03:06
>>292
それ使ってるよ。うまく動いてる。

297:295
10/04/22 13:30:40
自己レス:

>”Q_OBJECT”が要る

のは勘違いでした。

>[ビルド]-[qmakeの実行]を実行

が必用でした。

298:デフォルトの名無しさん
10/04/22 16:20:07
Qt Creator でコンパイル指定子(#define 、みたいな)設定できまつか?

299:298
10/04/22 16:51:36
>DEFINES +=

でできますた。

URLリンク(doc.trolltech.com)

300:デフォルトの名無しさん
10/04/22 20:26:20
これゲームとか作れるの?

301:デフォルトの名無しさん
10/04/22 20:29:12
不可能じゃないけど、向いてないよ

302:デフォルトの名無しさん
10/04/22 20:37:53
それは残念

303:デフォルトの名無しさん
10/04/22 22:15:16
qtのクラスを継承しない時は、絶対に#include <QString>しないとダメなの?

304:デフォルトの名無しさん
10/04/22 22:41:29
#include <QtCore>


305:303
10/04/22 22:51:15
>>304
OK,Thx

306:デフォルトの名無しさん
10/04/22 23:14:11
QButtonのフォーカスをクリックはできるけどフォーカスを保持しないように
(スペースとかでは反応しないように)するにはどうしたらいいのでしょうか?
ClickFocusだとフォーカスがボタンに残ってしまいます。
クリック後に自前でフォーカスを移動させるしかない?


307:デフォルトの名無しさん
10/04/22 23:26:19
taborder=-1

308:デフォルトの名無しさん
10/04/23 09:46:53
Qt Ctreatorで作成したウィンドウのサイズを実行時にユーザーが変更できないように
するには,フォームエディタでプロパティのminimumSizeとmaximumSizeをも同じ値に
するのが正しいやり方なの?

309:デフォルトの名無しさん
10/04/23 09:49:40
yes

310:デフォルトの名無しさん
10/04/23 11:49:44
no

311:308
10/04/23 11:58:01
>>310
具体的にどうすれば良いか教えてください。

312:デフォルトの名無しさん
10/04/24 00:48:40
>>311
>310 の no は no。>309 の yes が yes。

313:デフォルトの名無しさん
10/04/24 09:10:06
QWidget::setFixedSize(const QSize&)

314:デフォルトの名無しさん
10/04/24 10:14:04
>>313
ヘルプを読むと、それって結局minimumSizeとmaximumSizeを同じ値にしてるだけだから、
ソースコード上に書くか、Qt CratorのGUIデザイナ上でプロパティを設定しておくかの
違いだけ。

315:デフォルトの名無しさん
10/04/24 10:35:14
で?

316:デフォルトの名無しさん
10/04/24 10:39:40
QtのDemoに入ってるアプリはsetFixedSizeでやってたから
俺はsetFixedSizeを使ってる

317:デフォルトの名無しさん
10/04/24 11:48:29
>>315
>>308


318:デフォルトの名無しさん
10/04/24 12:42:48
フォームエディタでポチポチするよりコンストラクタに一行追加する方が楽だし応用もできる

319:デフォルトの名無しさん
10/04/24 12:43:18
>>316
setFixedSizeの本質は>314。

320:デフォルトの名無しさん
10/04/24 12:51:18
loopy

321:デフォルトの名無しさん
10/04/24 13:09:35
>>311
src/gui/kernel/qwidget.cpp
コードを読めば分かる。

322:デフォルトの名無しさん
10/04/24 14:09:00
>>318
GUIデザイナ上でプレビュー見ながら視覚的に丁度良いサイズにしておいて、
geometorytからminimumSize、maximumSizeにwidth/heightを書き写した方が
やりやすい。

323:デフォルトの名無しさん
10/04/24 15:03:22
どうやったら、zipとrarw解凍できるの?

324:デフォルトの名無しさん
10/04/24 15:12:00
>>323
unzipとunrar

325:デフォルトの名無しさん
10/04/24 15:44:22
QTableViewを使うと、内容を編集する際に
前のデータがまるっと消えてしまいますが、
前のを残して修正するには、
やはりカスタムのデリゲートを作らないとだめでしょうか。

326:デフォルトの名無しさん
10/04/24 16:32:10
>>325
モデル作っちゃったのなら、そうするのがいいかもしれないけど
まだ作ってないのならQTableWidgetにしたら消えなかった気がする

327:デフォルトの名無しさん
10/04/24 17:43:07
TableView / TableWidget や
TreeView / TreeWidget の使い分けの基準が判らんのですが
どこかで判りやすく説明されているサイトとかありますか?
一応「入門Qtプログラミング」は持ってるんですが良くわからなかったので。

328:デフォルトの名無しさん
10/04/24 17:52:23
>>327
URLリンク(doc.trolltech.com)

329:デフォルトの名無しさん
10/04/24 18:32:28
>>327
TableWidgetやTreeWidgetを使って行き詰まって後悔してからTableViewやTreeViewを使う。

330:デフォルトの名無しさん
10/04/24 18:45:48
わかりました。
ありがとうございます。
*Widget で作ったソースをあとで *View に変更するときになっても
そんなに書き換えなくても済むという理解であってますか?。


331:デフォルトの名無しさん
10/04/24 20:02:21
QFile::WriteOnly
QIODevice::WriteOnly
どっちが正しいのでしょう

332:デフォルトの名無しさん
10/04/24 20:37:19
>>331
URLリンク(doc.trolltech.com)
Inherits QIODevice

333:デフォルトの名無しさん
10/04/24 20:40:29
>>330
目的に合った*Widgetを作るというようにすれば。

334:デフォルトの名無しさん
10/04/24 21:31:26
処理時間のかかる共有ライブラリを実行中に
画面をフリーズさせない方法を教えてください

お願いします。

335:デフォルトの名無しさん
10/04/24 21:38:03
>>334
スレッドを分ける

336:デフォルトの名無しさん
10/04/24 21:40:54
>>335
スレッド分けて
a.start();
a.wait();
ってやるとスレッド実行中はフリーズしちゃいますよね
これはどうやって回避させるんでしょうか?

337:デフォルトの名無しさん
10/04/24 21:46:19
>>336
waitじゃなくてfinished()かrunning()でポーリングすればいいんでね

338:デフォルトの名無しさん
10/04/25 01:24:59
qDebug() << "日本語";はOKだけど
qDebug("日本語");は駄目なん?

339:デフォルトの名無しさん
10/04/25 02:37:41
qDebug() << qPrintable(msg); と qDebug("%s", qPrintable(msg)); で結果が異なる

144 デフォルトの名無しさん [sage] 2010/02/08(月) 22:57:13 ID: Be:
    >>142-143
    qDebug(fmt, ...);
    の場合、渡す文字列はutf8固定。
    (ちなみに、fmtはLatin1固定)
    QString::sprintf() を内部で使っているため。
    URLリンク(doc.trolltech.com)

    qDebug("%s", msg.toUtf8().constData());
    としてみると動かないかな。

340:デフォルトの名無しさん
10/04/25 07:43:13
qDebug(fmt, ...) じゃないとリリースビルドでもコード残っちゃうから
普通に日本語使えるようにして欲しいなあ

341:デフォルトの名無しさん
10/04/25 08:40:51
>>340
>普通に日本語使えるようにして欲しいなあ
いろいろなコンパイラのことを考えれば、日本語文字列を使わないのが最もよい。

342:デフォルトの名無しさん
10/04/25 09:52:17
>>341
Qtのサポートしてるコンパイラ(g++,msvc,icc etc)については
問題無いと思うが

343:デフォルトの名無しさん
10/04/25 10:05:33
よいプログラムを書きたいのではなく、よいソフトウエアを作りたいのです


344:デフォルトの名無しさん
10/04/25 10:13:09
よいソフトウェアを維持するために
よいプログラムを書きましょう

345:デフォルトの名無しさん
10/04/25 11:57:27
QtAssistantでQWidgetを検索しても出てこないのって俺だけ?
ページはあるのに…

346:デフォルトの名無しさん
10/04/25 12:28:30
>>339
さんくす
で、結局TRACEに対応するものはないってことか?

347:デフォルトの名無しさん
10/04/25 13:43:05
>>340
「普通に」って書いてるから分かってるんだと思うけど
まったく日本語が使えない訳じゃなくて
fmtに日本語が使えないだけだから
qDebug("var: %1", qPrintable(var));
と書けばいい話
そもそもデバッグってそういうもんでしょ?

348:デフォルトの名無しさん
10/04/25 13:46:50
たしかにdebugしようとして文字列表示させてるのに
それが文字化けしてたらdebugにはならん罠

349:デフォルトの名無しさん
10/04/25 14:01:13
>>347
qDebug("var: %s", var.toUtf8().constData());
が正しい

350:デフォルトの名無しさん
10/04/25 16:54:52
Qtのアプリケーションに日本語を使うと起動が遅くなる気がするんですが、
これは気のせいですか?

351:デフォルトの名無しさん
10/04/25 17:13:26
気のせいです

352:デフォルトの名無しさん
10/04/25 17:20:10
qjpcodecs4のpluginを起動時に読みに行くけど
気が付くほど遅くなるとは思えない

353:デフォルトの名無しさん
10/04/25 19:10:43
>>342
VSは、UTF-8をSJISに変えてしまうという問題あり。

354:デフォルトの名無しさん
10/04/25 20:16:05
>>350
プロファイリングをして解析し、日本語が問題だと特定してから言うべきことでしょう。

355:デフォルトの名無しさん
10/04/25 20:17:27
>>348
文字化けせずに表示する方法があるのだから全く問題ない。

356:デフォルトの名無しさん
10/04/25 20:35:27
プロファイリングをして解析し、日本語が問題だと特定したら2chのスレじゃなくて開発に報告してあげましょう。

357:デフォルトの名無しさん
10/04/26 01:14:22
>>347->>349
回避法ありがと。まあテンプレでもqDebug(fmt)は避けてるし

プロジェクトで使うなら「ストリームqDebug使え」って方針がわかりやすくて無難だと思う

でもQtが内部UTF-16なのにsprintf/snprintfをUTF-16用に書き直さないのは謎だな
Qt4.6のQString::sprintfの説明には「We do not recommend using QString::sprintf() in new Qt code」とあるし、
qDebug(fmt)をobsoluteにしたいと思ってるのかな方向なのかな

>>350
多分気のせいだと思う

358:デフォルトの名無しさん
10/04/26 02:44:58
>>340
>qDebug(fmt, ...) じゃないとリリースビルドでもコード残っちゃうから

まじ?

359:デフォルトの名無しさん
10/04/26 20:18:35
ストリーム形式で%04xなんてどう書いていいのかわからん

360:デフォルトの名無しさん
10/04/26 22:21:17
今回、初めてリリースビルドしたんだが
warningがいっぺんに40個もでて来てびっくり
その中で、
dereferencing pointer '<anonymous>' dose break static-aliasing rules
とは、どんな警告?
場所はqvector.h内の
void QVector<T>::free(Data *x)
{
if(QTypeInfo<T>::isComplex){
T* b = x->array;
T* i = b + x->ize; ここを差すんだけど
コード内で2箇所ほどQVectorを使ってるけど、どこが問題なのかよく分かりません



361:325
10/04/26 22:41:20
>>326
遅くなりましたが325です。
モデルを分けたのは、
Widgetにするとデータ複製が入るしなあ、と思ったのです。
実際には想定行数は1万行未満なので、
今時問題ないのかもとは思いますが……

モデルは作ったけど、とりあえず状態だし
TableWidgetを試してみます。
ありがとうございます。

362:デフォルトの名無しさん
10/04/26 22:51:23
>>359
URLリンク(doc.trolltech.com)
URLリンク(doc.trolltech.com)


363:デフォルトの名無しさん
10/04/28 15:42:43
QTabWidget で,指定したページの可視/不可視をタブごと切り替えたいのですが,良い方法はないでしょうか?
各ページは QWidget になっているので,QWidget::hide() を使ってみたらページの中味が空になるだけでした。

また QTabWidget::setTabEnabled() だとタブ上のラベルが灰色になってクリックできなくなるだけで,タブ自体は
見えてしまっています。

QTabWidget::removeTab() や QTabWidget::insertTab() を使って何とかしようとしましたが,insertTab() は
引数に挿入位置のインデックスが必要なので,タブの可視/不可視を切り替えた時に,元の順番どおりに
タブを並べるのが困難で挫折しました(タブ上のラベルも保存しておかないとならないので QHash とか
使ってゴニョゴニョやったんですが)。

お知恵を貸してください。

364:デフォルトの名無しさん
10/04/28 17:02:24
曖昧すぎる
どうしたいのかをもう少し厳密に説明してくれ

365:363
10/04/28 17:39:23
>>364
曖昧にならないように説明したつもりだったんですが,伝わらなかったようですね。
まず「タブ」という言葉が曖昧なようなので,QTabWidget に表示される各ページ上部の四角く
突出した部分を「タブ」と呼ぶことにします。

やりたいのは,指定したページをタブごと見えなくしたり見えるようにしたりすることです。
あるページを見えなくした場合,次のページ以降のページがタブごと詰めて表示され,一旦
見えなくしたページを再び見えるようにした場合,元の位置に挿入されるようにしたいのです
(ページの順序は常に保存される)。

以前使っていたC++ Builderではこれが普通に出来たので,Qtでも同じようにしたいのですが,
やり方が見つかりません(現在,C++ BuilderからQtにソフトを移植中)。

よろしくお願いします。

366:360
10/04/28 19:03:11
struct IDPoint{
double x;
double y;
int tool;
bool fl;
};

QVector <IDPoint> m_PntAry;

こう書いてたら、先の警告がでました。
std::vectorに換えたら警告はきえました。
どうして?


367:デフォルトの名無しさん
10/04/28 20:09:43
>>365
TabView

368:デフォルトの名無しさん
10/04/28 20:30:07
>やりたいのは,指定したページをタブごと見えなくしたり見えるようにしたりすることです。
>あるページを見えなくした場合,次のページ以降のページがタブごと詰めて表示され,一旦
>見えなくしたページを再び見えるようにした場合,元の位置に挿入されるようにしたいのです

この部分が何を言っているのかよくわからない。
特に「見えなくしたり見えるように」というのがどういう意味なのか図に書いて説明して

369:デフォルトの名無しさん
10/04/28 20:35:03
>QTabWidget::removeTab() や QTabWidget::insertTab() を使って何とかしようとしましたが,insertTab() は
>引数に挿入位置のインデックスが必要なので,タブの可視/不可視を切り替えた時に,元の順番どおりに
>タブを並べるのが困難で挫折しました(タブ上のラベルも保存しておかないとならないので QHash とか
>使ってゴニョゴニョやったんですが)。

これをやるしかないだろ
手抜きを考えずにまじめにやろう

370:デフォルトの名無しさん
10/04/28 20:42:32
>>365
それそのもの、といったメソッドはなさそうです。
QTabWidgetを継承して
void MyTabWidget::setTabVisible(int idx, bool show){
this->setTabDisable(idx, show);
this->tabBar()->tabButton(idx)->setVisible(show);
}
でいいのかなぁ。

371:365
10/04/28 22:15:50
>>368
> 特に「見えなくしたり見えるように」というのがどういう意味なのか図に書いて説明して

これがわからないと言われてしまうと仕方ないですね。AAなんか簡単に描けませんし。
他の方にはわかっていただいてるようですが、簡単に言うと「消したり出したり」です。
QWidget::hide() とか QWidget::show() のようなことを言っています。

ただ、消した時、それ以降のタブが左に移動して詰められるところが単純に消すのとは
異なります。

372:365
10/04/28 22:24:56
>>367
QTabViewというウィジットはないようですし、ヘルプでTabViewを検索しても何も
出てきませんが...

>>369
> これをやるしかないだろ
> 手抜きを考えずにまじめにやろう

おっしゃるとおりで、頑張ってやれば出来るのはわかってるんですが、想像以上に
ややこしくて、出来てから「なぁんだ、そんな手があったのか」ってことになるかも
しれないと思って、先に聞いてみた次第です。

>>370
私もそれを試して見ようと考え始めていました。
QTabWidget::tabBar() って protected なんですね。
ポイントは、tabBar()->tabButton(idx)->hide() とやってちゃんと消えてくれるか
どうかですね。


373:365
10/04/28 23:38:25
>>370
Qt Creatorでフォームに貼ったQTabWidgetを格上げしてやってみましたが、
残念ながらダメでしたorz
tabBar()->tabButton() で返される QWidget* の値が 0 になってしまいました。

そもそも tabButton() の第二引数の ButtonPosition の意味がヘルプを読んでも
不明です。これに指定できるのは QTabBar::LeftSide か QTabBar::RightSide ですが、
意味がわかりません。まぁ、どちらを指定しても結果は同じなんですが。

やはり>>369の言われるように、頑張るしかなさそうに思えてきました。

374:デフォルトの名無しさん
10/04/28 23:58:24
>>372
すまそ、tabButtonはまた別の機能っぽいですね。
他にtabBarにそれらしき機能ないっぽいので、タブバーを誤魔化すのは難しそうです。
(さすがにpaintEventの再定義するのだったら、indexを管理した方が簡単そうですから)
嘘教えて申し訳ないです。

375:デフォルトの名無しさん
10/04/29 00:07:06
>>374
いえ、とんでもない。ヒントいただいただけでも感謝です。

しかし、個々のタブにアクセスする方法はどうやらないみたいですね。
ご承知の通り各ページはQWidgetなんですが、じゃタブは何者?

WindowFlagsに「タブつきウィジット」ってのがあるんじゃないかと思って
調べましたが、ありませんでした。うーん。

376:デフォルトの名無しさん
10/04/29 00:13:02
場合によっては、ウィジェットは全部QWidgetListに保存して変更あるごとに一旦clear()してaddTabやり直した方が楽そうですね。
アホみたいに数あるとか、頻繁に数が変わるんだったら止めた方がいいですが。

タブ名はwindowTitleとして保存すればいいですし、有効・無効はenabled/disabledを利用すれば、QWidgetの機能だけで全部できます。
tabwid->clear();
QWidget *wid;
foreach(wid, wid_list){
if(wid->isEnabled()) tabwid->addTab(wid, wid->windowTitle());
}

377:デフォルトの名無しさん
10/04/29 00:22:46
>>375
タブはどうやら、QTabBarがpaintEventの再実装してやってるらしく
(内部的には知りませんが公開APIとしては)タブというクラスはないようです。

378:365
10/04/29 08:16:12
>>376
いろいろ考えていただいてありがとうございます。

> 場合によっては、ウィジェットは全部QWidgetListに保存して変更あるごとに
> 一旦clear()してaddTabやり直した方が楽そうですね。
> アホみたいに数あるとか、頻繁に数が変わるんだったら止めた方がいいですが。

はい。まずはそれでやってみようかと思います。
これだったら面倒はないですね。

> タブ名はwindowTitleとして保存すればいいですし、有効・無効はenabled/disabledを
> 利用すれば、QWidgetの機能だけで全部できます。

なるほど。私は accsessibleName や QObject::property を使うことを考えていました
が、この方が簡単ですね。

ありがとうございます。あとは手を動かすのみです!

>>377
そうなんですか。それじゃ弄りにくいですね。

379:デフォルトの名無しさん
10/04/29 18:48:30
ここまで書いてくれてる人のレスを流し読みしかしてないけどタブの件にレス。
タブの順番とタイトルと表示するウィジェットのポインタと表示・非表示のフラグを保持するリストを作って
タブを消す、再表示するの操作がある度に全部並べ直せばいいんでない?

380:デフォルトの名無しさん
10/04/29 19:22:01
>>379
>>376さんの言っているのは、まさにそういうことです。
一応、そのパターンではうまく行きました。

現在、一度消して全部並べなおすのではない方法で
やってみています。

381:デフォルトの名無しさん
10/04/29 22:25:04
QtCreatorでデバッグビルドとリリースビルドを別々のフォルダに作成することは
可能でしょうか。


382:デフォルトの名無しさん
10/04/29 22:35:49
>>381
Windowsだと普通にやればそうなります。
Linuxだとそうならないらしいので、.proファイルに例えば、

CONFIG(release, release | debug) {
DESTDIR = release
}
CONFIG(debug, release | debug) {
DESTDIR = debug
}

と書いておけば良いと思います(自分では未確認ですが)。


383:365
10/04/30 00:02:52
タブの可視/不可視の制御ですが、ページを一旦全消して書く直す方法を使わずにやっと
出来ました。インデックスの管理に結構難儀しました。

長いのでコードまでは書きませんが、やったことは、Qt Creatorでフォームに貼った
QTabWidgetを格上げして派生ウィジットクラスを作り、addTab()、insertTab()、remove()
、setTabText()、setTabIcon()をオーバーライドして、privateメンバとして用意した
QWidgetListで各ページのポインタ(QWidget*)を管理するようにしたり、タブ上のラベル
やアイコンを保存するようにしました(QWidgetのwindowTitleやwindowIconに保存)。
可視/不可視の管理はQWidgetのenabledプロパティでやりました(この辺、>>376さんの
アイデアを頂戴しています)。

こうしておいて、新たにsetTabVisible()関数を作り、タブを不可視にしたい場合には基底クラス
のremove()を呼び出します。タブを可視にしたい場合は、現在表示中のページをインデックス
0から見て行って、可視にしようとするタブのページより後ろのページを見つけたら、その位置に
基底クラスのinsertTab()でページを挿入します。最後まで可視にしようとするタブのページより
後ろのページが見つからなかったら、末尾に基底クラスのaddTab()でページを追加します。

もう一つ、すべてのタブが不可視の場合は、単純に可視にしたいタブのページを基底クラスの
addTab()で追加します。

こんな感じですが、これじゃ当事者以外には意味が伝わらないですねw
一応報告だけはしないといけないと思いまして...
とにもかくにも、レスいただいた皆さん、ありがとうございました。


384:365
10/04/30 00:08:19
↑ remove()はremoveTab()の間違いです。スマソ。

385:デフォルトの名無しさん
10/04/30 00:35:04
どうせソース貼らないんだったら
いちいち発表しなくてもいい
ここの人はみんなそれくらい分かってると思うよ

386:デフォルトの名無しさん
10/04/30 01:05:44
>>385
君のレスよりは有益だ。

まるで初心者な解決法じゃなく、慣れた人っぽい解決法だから役に立つ人もいるかもしれぬ。

387:デフォルトの名無しさん
10/04/30 01:22:49
>>384
QTabWidgetって仮想デストラクタ持ってないから、メモリリークしないように気をつけてね。

388:365
10/04/30 08:58:43
>>387
え? そうなんですか...
ふと気が付いて調べてみたら、そもそもQWidgetのデストラクタもvirtualになってないですね。
QObjectはなってますが。

まぁ、今回作った派生クラスはデストラクタでやるべきことがないので、宣言も定義もしていません
から大丈夫なんですが、なんだかなぁ。

あとuicで作られたui_xxxxx.hの中身を見ると、格上げされた派生クラスをnewした時のインスタンス
ポインタは、基底クラスのポインタ型ではなくて、派生クラスのポインタ型の変数に代入されてます
から、一応問題はないですね。

しかしなぜデストラクタをvirtualにしないんでしょうね。何か理由があるんでしょうか。
また一つ勉強になりました。ありがとうございました。

389:365
10/04/30 11:23:31
>>386
やっぱりソースがないと、情報として不足だと思いますので、Qt Users Forun Japanに添付ファイル
付きで書き込みしました。よろしかったら参考にしてください。
URLリンク(qtusersforum.s2.zmx.jp)

390:デフォルトの名無しさん
10/04/30 12:47:27
>>387
>QTabWidgetって仮想デストラクタ持ってないから、メモリリークしないように気をつけてね。
持ってますよ。

>>388
>しかしなぜデストラクタをvirtualにしないんでしょうね。何か理由があるんでしょうか。
理由は↓だからです。
>QObjectはなってますが。

391:365
10/04/30 12:59:38
>>390
基底クラスでvirtualになってれば、派生もvirtualになるんでしたね
思いっきり忘れていました
どうもありがとうございました

392:365
10/04/30 13:06:48
>>391
何で本物の>>365でない人が>>365を名乗るんですか?
単なる間違いならいいんですが。

393:392=本物の365
10/04/30 13:13:32
>>390
> >しかしなぜデストラクタをvirtualにしないんでしょうね。何か理由があるんでしょうか。
> 理由は↓だからです。
> >QObjectはなってますが。

デストラクタは継承されませんが、その場合でも基底クラスでvirtualならば派生クラス
でvirtualになるんでしたっけ? (この辺、知識があいまいです)


394:デフォルトの名無しさん
10/04/30 14:43:31
>>393
そうです。

395:393
10/04/30 16:26:18
>>394
ちょっと手元で実験してみましたが、確かにおっしゃるとおりでした。
また一つ勉強しました。ありがとうございます。

396:デフォルトの名無しさん
10/04/30 23:59:17
>>390
基底クラスがデストラクタのvtbl持ってるから、派生クラスもvtblもってることになるって認識でいいのかなぁ?

397:デフォルトの名無しさん
10/05/01 04:09:33
スレ違い

398:デフォルトの名無しさん
10/05/01 11:23:51
tabbox内のタブをtabboxの横幅いっぱいに拡大したいんだけどこれってどこで設定すれば?っていうか無理なのかしら
┌─┐─┐─┐───┐
└───────┘ タブ3枚、右側は空白

この状態を
┌──┐──┐──┐タブ3枚、横幅いっぱい
└───────┘
こうしたいんだが・・・

399:デフォルトの名無しさん
10/05/01 11:39:24
>>398
QTabBarのexpandingは違うかなぁ……

400:デフォルトの名無しさん
10/05/01 11:55:36
>>399
TabBoxだけじゃなくてTabBarもあるんですね…無事対応出来ました、即レス感謝です!

401:デフォルトの名無しさん
10/05/01 14:02:12
細かいハナシで申し訳けないのですが、、、

QtCreatorのヘルプで本文中の文字列を検索した際のハイライトの色ってどこかで変更出来ないでしょうか?
薄いグレーでで毎回見つけるのに苦労してます。


402:デフォルトの名無しさん
10/05/01 19:30:07
コマンドラインオプションを解析する方法を教えてください

403:デフォルトの名無しさん
10/05/01 19:58:46
>>402
QCoreApplication::arguments() を使うのもよし、普通にargc、argvを使うのもよし。


404:402
10/05/01 20:13:39
>>403
thx

405:デフォルトの名無しさん
10/05/02 07:21:16
>>401
俺も変更したいと思って探したけど、残念ながらないみたい。

406:デフォルトの名無しさん
10/05/02 08:27:05
薄すぎw

407:デフォルトの名無しさん
10/05/02 11:10:17
最初気が付かなくてなんで検索できないのか悩んだw

408:デフォルトの名無しさん
10/05/02 15:46:23
javaのIDEは左側に、メソッド一覧が表示されるけど
qt-creatorは上にしか表示できないの?

409:デフォルトの名無しさん
10/05/02 16:34:34
サイドバーにアウトラインはめっちゃ欲しい
なんでないんだろか

410:デフォルトの名無しさん
10/05/02 19:11:58
IME入力の問題なんとかしてくれないかなー
TableWidgetにかな入力するのがトロいし時々落ちるし・・・
これじゃぁ人に使ってもらうには渋いよなぁ・・
みなさんどう回避してるんですか?

411:デフォルトの名無しさん
10/05/02 19:19:12
lineeditは知ってたけど、テーブルもそうなのか
俺のレベルじゃ原因の特定すれできん

412:デフォルトの名無しさん
10/05/02 19:33:11
別にWindowsのバージョン依存じゃないんだよなあれ
XPでもVistaでも7でも平等に不安定だし

413:デフォルトの名無しさん
10/05/02 19:42:43
Qtの中の人ここ見てるかなぁ?
ぜひともWindows版での日本語入力を改善してください
とりあえずLineEditとTabeWidget
まさか、商用版は問題ないとかじゃないよね?

414:デフォルトの名無しさん
10/05/02 20:10:19
コードからMS-IMEの状態を切り替える(かな→英数など)ことはできますか?

415:デフォルトの名無しさん
10/05/02 20:11:16
へー本当だ
今まで気づかんかったけどIME入力にすると
LineEditが不自然に遅くなるne @WindowsXP SP3

416:デフォルトの名無しさん
10/05/02 20:16:40
まだ誰もバグ報告してないみたいだな

417:デフォルトの名無しさん
10/05/02 20:21:54
みんな何の用途にQt使ってるの?www
QtってGUI用ライブラリでしょ?www

418:デフォルトの名無しさん
10/05/02 20:58:02
TextEditも文字が消えなくなるバグあるし、OpenTypeフォントのバグもどうにかしてもらいたいもんだ
自分でソース見てもさっぱり分からん

419:デフォルトの名無しさん
10/05/02 21:21:44
qt3からqt4にバージョンが上がるときに、qtは大幅な書き直しがあったの?

420:デフォルトの名無しさん
10/05/02 21:26:57
日本語周りがそんな状態なのに長らく放置されてるってことは
Win版で日本語で商用ライセンスで使ってる開発者ってほとんどいないってことなんですかね?
じゃなかったら苦情出てるはずだと思うんだけど・・

421:デフォルトの名無しさん
10/05/02 21:36:32
もうWindowsXP使わないから、Nokiaに送ったら改善してくれるかな

422:デフォルトの名無しさん
10/05/02 21:45:59
知らなかった。
そんなに目立つバグがあるんかい。Qt。

423:デフォルトの名無しさん
10/05/02 21:57:14
IME周りの不安定さはこのスレでも何度か指摘されてるはず

424:デフォルトの名無しさん
10/05/02 21:57:29
>>413
URLリンク(bugreports.qt.nokia.com)


425:デフォルトの名無しさん
10/05/02 22:04:15
Creator1.3.1なんだけど
置換ってつかえる?
検索はできるんだけど、置換のやり方が分かりません


426:デフォルトの名無しさん
10/05/02 22:24:43
Qt Creator+Designer で簡単なテストプロジェクト作っているのですが
単に slider からから得られる値を加工した値(例えば10倍するとか)
を lcdNumber に表示させることを Designer の機能をフルに使って
タイプして入れる量を最低で作ろうとしています。

まず,単に slider の返す値を表示させるアプリケーションであれば
マウスでポトペタ,edit signal/slot でつないで Build, Run で
全くタイピングしないで作れます。

これに関数を一個挟むだけなのですが,これを挟む箇所が見えません。
編集できるのは main.cpp, mainwindow.h,.cpp,.uiと<プロジェクト名>.pro
だけですがここには slider や lcd は無いので挟めません。
slider, lcd を promote すると今度はそれらのコードが無いために compile
error となります。

実質的に変換の関数を1個書けば作れるはずだと思うのですが,どうしたら良
いのでしょうか?

いろいろ tutorial のサイト見たのですが,実質的にコードを全部手書きする
感じで本来の Designer の機能を使い切っていないように見えます。

こういったことができれば色々作る見通しができるように思えます。
Qt初心者でレベルの低い質問で申し訳ありません。


427:デフォルトの名無しさん
10/05/02 22:26:21
>>425
Ctrl+Fで入力枠が上下に2つ出るじゃろ?
下のほうが置換えや

428:デフォルトの名無しさん
10/05/02 22:27:21
>>425
Ctrl+Fはいけるけど
Ctrl+Shift+Fの方はないっぽいね


429:デフォルトの名無しさん
10/05/02 22:53:36
>>414
これはネイティブAPIじゃないと無理なんでしょうか・・・

430:デフォルトの名無しさん
10/05/02 23:03:56
>>418
英語でバグ報告するのが大変なら、ここで詳しく報告してみたら?
誰か気が向いた人が報告するかも知れないし、もちろんしないかも知れないが

■バグトラッカー入力事項
・要約(1行で)
・Qtバージョン
・関連するコンポーネント(Widgets、Phnon、QtScript、OpenGLなど。複数可)
・バグ報告本文(症状と再現方法。簡潔な再現コードがあればそれも)
・再現環境
 OS:Windows Vista Home SP2, MacOS X v10.6.3, ubuntu 9.10 など
 その他(例えばIMEならMS IME Standard 2002 ver 8.1、Google日本語入力0.10.288.0など)


431:デフォルトの名無しさん
10/05/03 00:07:42
>>429
InputMethodで検索するくらいのことはしようよ。
QWidget::setAttribute(Qt::WA_InputMethodEnabled, true)

432:デフォルトの名無しさん
10/05/03 00:13:59
>>431
thx
よく見つけられるなぁ・・・
QtCreatorではInputMethodでは見つけられなかったし
ぐぐってもsetAttributeは見つけられなかった・・orz
どうやって検索したのか教えてください

どうも頭が.netになってるから探す場所がそもそも見当ちがいなのか・・・

433:デフォルトの名無しさん
10/05/03 00:27:08
>>432
QtAssistantのインデックスのところにinputmethodって入れてみたらsetInputMethodEnabledってのが見つかって、
そこ見たら
Use setAttribute(Qt::WA_InputMethodEnabled, enabled) instead.
って書いてあった。

434:デフォルトの名無しさん
10/05/03 00:44:41
>>433
なるほど。探してくれてありがとうございます。
どうもC#的な構文の発想が抜け切れておらず・・・・ですいません。助かった。


435:425
10/05/03 07:58:04
>>427 428
ありがとう
Ctrl+Shift+Fの方ばかり探してた


436:デフォルトの名無しさん
10/05/03 08:09:42
便乗質問だけど、webkit を使って表示したwebページでのテキスト入力エリアで
3つ以上の文節の変換(例えば テストテストテスト)を行うとクラッシュするんだけど
これはどう回避したらいいのでしょうか?

webkit が生成するテキスト入力エリア全てに以下のメソッドを呼ぶの?
QWidget::setAttribute(Qt::WA_InputMethodEnabled, true)

437:デフォルトの名無しさん
10/05/03 08:23:27
Webkitのクラッシュの話は前も指摘されてたけど
やっぱり原因不明だから直るまで待つしかないと思う
一応バグレポートで報告済みで、すでに開かれてるみたいだし

438:デフォルトの名無しさん
10/05/03 09:11:37
>>418 >>430
日本語入力のバグなら日本で Qt の商売をしている SRA にバグ報告する方が
早いかも。
誰か SRA のサポートや講習会を受けている人がいたら連絡してみては?
(たぶん、SRA の人もこのスレを見ているだろうとは思うけれど…)

URLリンク(www.sra.co.jp)
>SRA は Nokia, Qt Software のサポートに加えて、日本語による時差の
>無いローカルサポート窓口、日本語環境に特化した問題の迅速な解決支援、
>カスタムトレーニングや開発支援サービス等を提供します

>問題の内容によっては、SRA のサポートの方が対応が早い場合もあります。
>特に、日本語特有の問題等が生じた場合には、どうしても
>Nokia, Qt Software の技術者だけでは、不具合内容の確認が困難となります。
>そのような場合には、Nokia, Qt Software が対策を行う前に、弊社が
>先行で暫定パッチを作成して提供することもあります。

この問題の暫定パッチが SRA の顧客「だけ」には提供されていたりしてw

439:デフォルトの名無しさん
10/05/03 09:17:05
そのLineEditとIMの組み合わせで遅くなるバグはlinux版4.6.2でも確認したよ
とりあえず俺は4.5に落した上で4.7待ちにすることにした

440:デフォルトの名無しさん
10/05/03 09:31:57
>>439
Linuxではバージョン落とせばいけるのか
つことはやっぱバグとみていいのか
仕様なのかと思ってたw

441:デフォルトの名無しさん
10/05/03 11:50:32
SRA の人はこのスレを見ていない

442:デフォルトの名無しさん
10/05/03 11:58:40
Windows 版 4.5.1 使ってますが無問題です

443:デフォルトの名無しさん
10/05/03 12:05:48
linuxのqtはxlibを叩いているんですか?

444:デフォルトの名無しさん
10/05/03 12:23:31
日本の今の現場の状態だと、IT業界に先はないだろ。
どんどん人材を消耗するだけ消耗して使い捨て、いっつも現場は新人だらけ。
スパゲティソースが残るだけで熟練した技術なんて絶対に蓄積しないよ。
最近は何でもかんでも技術の標準化が進んでるから
「技術は○○が握ってる」とかいうことはあまりない。
むしろ日本勢が旧態依然とした「独自技術」に拘って
ノロノロと研究してる間に中韓みたいなところから標準技術を組み合わせただけの
製品が出てきて市場を取られるんだよ。
丸投げピンハネがはびこっている間は欧米には勝てない。

445:デフォルトの名無しさん
10/05/03 12:24:38
複数スレを跨ぐコピペって報告した方が良いのかな

446:デフォルトの名無しさん
10/05/03 15:43:20
>>445
頼むわ

447:デフォルトの名無しさん
10/05/03 16:16:50
>>441
Qt Users Forum Japanなら見てるし書き込んでる。
URLリンク(qtusersforum.s2.zmx.jp)

448:デフォルトの名無しさん
10/05/03 19:52:18
今、思ったんだけど
signalとslotって関数ポインタを隠蔽しているだけなのか?

449:デフォルトの名無しさん
10/05/03 19:57:06
>>448
URLリンク(doc.trolltech.com)

450:デフォルトの名無しさん
10/05/03 21:04:15
>>448
connect() のソース読んでみると、いろいろわかっていいぞ

451:デフォルトの名無しさん
10/05/03 21:25:30
円独歩安だな
他はどこも動いてないのにw

452:デフォルトの名無しさん
10/05/03 21:26:19
誤爆失礼

453:デフォルトの名無しさん
10/05/03 23:52:18
IME 遅い site:qtusersforum.s2.zmx.jp - Google 検索
URLリンク(www.google.com)

日本語入力 遅い site:qtusersforum.s2.zmx.jp - Google 検索
URLリンク(www.google.com)

いずれも一致する情報は見つかりませんでした。

tableWidget, lineEditだけでなく
textEditも、debugビルドだとちょっと遅いですね。
使えるのはplainTextEditだけかも。。。。

454:デフォルトの名無しさん
10/05/04 02:02:40
VS2010でコンパイルする方法はありますか?
ぐぐってもいい情報が出てこない

455:デフォルトの名無しさん
10/05/04 07:04:20
>>454
URLリンク(doc.trolltech.com)

456:デフォルトの名無しさん
10/05/04 09:51:50
まだ予定に入ってるだけか…。

457:デフォルトの名無しさん
10/05/04 10:10:23
まだ出たばっかじゃん

458:デフォルトの名無しさん
10/05/04 10:13:14
Betaは相当前から出てるが

459:デフォルトの名無しさん
10/05/04 11:27:08
qt-creatorの赤の波線どうにかして消せないの?
邪魔くさいんだけど

460:デフォルトの名無しさん
10/05/04 14:38:53
文法間違ってると出る赤の波線じゃないの?それ。

461:デフォルトの名無しさん
10/05/04 14:40:24
書いてる途中なのに出てくるのはちょっと邪魔ではあるなぁ。
設定も見あたらないし、消せないのかね?

462:デフォルトの名無しさん
10/05/04 15:38:05
あるlineEditに入力されたアルファベットを小文字でも、すべて大文字に
したいんですが、可能ですか?


463:デフォルトの名無しさん
10/05/04 16:03:18
>>462
QLineEdit *le;
QString t = le->text().toUpper();

464:デフォルトの名無しさん
10/05/04 16:19:42
>>462
URLリンク(doc.trolltech.com)

465:デフォルトの名無しさん
10/05/04 16:34:55
大文字に変えるだけならQLineEdit::textChanged使うのが一番簡単じゃないかな

466:デフォルトの名無しさん
10/05/04 17:21:28
OS(Windows)のAPIを使うにはどうやるんでしょうか?

467:デフォルトの名無しさん
10/05/04 17:56:11
>>466
#if defined(Q_OS_WIN)
#include <Windows.h>
#endif

468:デフォルトの名無しさん
10/05/04 21:00:31
>>465
一回余分にスロットが呼ばれるのでは。

469:デフォルトの名無しさん
10/05/04 21:17:37
1回くらい気にしないか、QObject::blockSignalsを使うか

470:デフォルトの名無しさん
10/05/05 10:57:07
>>467
お!できました。
ありがとうございます。

471:462
10/05/05 11:21:56
QEventFilterのサンプルをまねて
bool MainWindow::eventFilter(QObject *obj, QEvent *ev)
{
if(obj == ui->lineEdit)
{
if( ev->type() == QEvent::KeyPress )
{
QKeyEvent *keyEvent = static_cast<QKeyEvent*>(ev);

keyEvent->text().toUpper();

return true;
}else{
return false;
}
}else{
return MainWindow::eventFilter(obj, ev);
}
}
としてみたんですけど
lineEditに入力できなくなりました。
ヘルプ

472:デフォルトの名無しさん
10/05/05 12:48:05
サンプルって、"Ate key press"ってのをそのまま写したの?
Key Pressを食うサンプル写したら、そりゃあ食われちゃうよ。

ヒント: eventFilterはtrueを返すとイベントはフィルタリングされたとして、無視される。
     falseを返すとフィルタリングされなかったとして、通常どおり扱われる。

ところで、これってeventfilter使うのは適切なのか?
使うとすればイベントを消して再送出になると思うけど、
それだったらkeyPressEventの再実装の方が簡単な気がする。

473:デフォルトの名無しさん
10/05/05 13:09:34
>>472
>>465の方法が簡単で確実。

474:471
10/05/05 15:09:05
>>472
あぁ、そうだったんですね。分かりました。

>>それだったらkeyPressEventの再実装の方が簡単な気がする。
え、そんなのがあったんですか。
また、勉強してみます。



475:デフォルトの名無しさん
10/05/05 22:33:26
x64 環境にインストールして試してみてる
x86 で作ったいくつかのプロジェクトはそのまま qmake/make も正常に出来て動作した
あるプロジェクトだけ make は正常だったのに実行すると再現性のある場所で必ず落ちる
どうも qDebug() が怪しいみたいだ
もう少し最小限のテストプログラムで同じ操作で落ちるかどうか試してみよう

476:デフォルトの名無しさん
10/05/06 09:27:22
QtCreator1.3.1でフォームデザイナの画面にヘルプを表示した後に
ヘルプを閉じるとオブジェクトブラウザとプロパティシートが
幅が狭くなったまま戻らない問題、改善してくれると有難いんだが・・
それより、VSやEclipseみたいな動作のドックウィンドウになって欲しい・・


477:デフォルトの名無しさん
10/05/06 09:41:13
URLリンク(codepad.org)
QFutureの辺りを読んでこのようなコードを書いたのですが
multの終了時にfが呼び出されません
なにがおかしいのでしょうか?

478:デフォルトの名無しさん
10/05/06 09:41:55
あとエディタをタブ式にしてほしい
多段タブで

479:デフォルトの名無しさん
10/05/06 09:57:09
>>462
Validatorを使うといいよ

480:デフォルトの名無しさん
10/05/06 10:35:16
>>478
同意
Ctrl+Tabでも切り替えはできるけど
コンボボックスって頻繁に操作するには面倒だよね

481:デフォルトの名無しさん
10/05/06 10:49:30
左下の小さいウィンドウを『開いているドキュメント』に設定すればいい
多段タブより見やすいし場所取らないし便利だよ

482:デフォルトの名無しさん
10/05/06 11:16:18
>>481
thx
そういうことができるのか
シングルクリックで切り替わるから楽だね

483:デフォルトの名無しさん
10/05/06 12:25:26
左にあるプロジェクトとかを右にもってくるにはどうすればいいの?

484:デフォルトの名無しさん
10/05/06 21:32:59
QStringとstringはどのようにすれば変換できるのですか?

485:デフォルトの名無しさん
10/05/06 21:40:56
toStdString

486:484
10/05/06 21:44:24
>>485
thx

487:デフォルトの名無しさん
10/05/07 00:31:03
>>477
return app.exec();

488:デフォルトの名無しさん
10/05/07 00:49:25
>>487
ありがとうございます
動作しました

489:475
10/05/07 03:24:28
やはり qDebug() が糞だった

490:デフォルトの名無しさん
10/05/07 10:11:57
>>489
どのように

491:デフォルトの名無しさん
10/05/07 10:22:41
qDebugの存在自体知らないので、kwsk教えて欲しいw

492:デフォルトの名無しさん
10/05/07 10:49:51
>>491
URLリンク(doc.trolltech.com)

493:475
10/05/07 11:09:58
>>490
すみません治っちゃいました

Makefile と debug / release ディレクトリ全部消してから
qmake / make で作り直したら x64 でも普通に動きました orz

qDebug() のせいと言い切ったのは早計でしたが
何かがおかしいようです(ソースは同じのを元に make しました)

っていうか mingw は 32bit 用のをそのまま x64 上で使っているだけなので
バイナリが混ざってたとかいうのが原因とも思いにくいのですが・・・


494:デフォルトの名無しさん
10/05/08 09:46:18
Fedora 9 QtCreator1.3.1
QFileDailog::getOpenFileNameで開いたダイアログから、ネットワークの
共有ファイルを開くには


495:デフォルトの名無しさん
10/05/08 10:29:22
>>477
app.exec()

496:デフォルトの名無しさん
10/05/08 12:10:57
> 494:
やってみたところでは、OSの方でmountしないと無理っぽい。

497:494
10/05/08 12:34:51
>>496
smbclientをインストールしてfstabでcifsを設定してsystem(mount /mnt/XXX);
しているので/まで上がってから/mntをたどれば開けるんですが、Nautilasみたいに
ネットワークを開くことはできないものでしょうか?



498:デフォルトの名無しさん
10/05/08 21:10:58
>>497
NautilasでなくてNautilus。
デスクトップ環境とツールキットは別物。KDEと同じように自分で処理する。


499:497
10/05/08 22:54:56
>>498
わかりました。
Windows環境でも、マイネットワークはでないのかな?


500:デフォルトの名無しさん
10/05/09 00:34:07
テキストボックスで、
改行なしの1行ボックスにしたいのですが、
どうすればよいのでしょうか。
(エンターおすと改行されてしまう)
qt designerを使っています。

501:デフォルトの名無しさん
10/05/09 01:00:43
QLineEdit ではだめなのか?

502:デフォルトの名無しさん
10/05/09 04:04:28
VS2010でQtコンパイルしてみたひといる?

503:デフォルトの名無しさん
10/05/09 07:54:54
>>499
Windowsだと、QFileDialog::getOpenFileName()のoptions引数に
QFileDialog::DontUseNativeDialogを指定しなければ、Windows標準の
「ファイルを開く」ダイアログが出るから、マイネットワークは選択できる。

QFileDialog::DontUseNativeDialogを指定してQt固有のダイアログを
表示させるとマイネットワークは選択できない。


504:デフォルトの名無しさん
10/05/09 08:34:54
>>500
イベントフィルターで、リターンとエンターを無視すればよいです。

505:デフォルトの名無しさん
10/05/09 17:02:36
>>200読んでちょっと試してみたけど、2chブラウザ作る用途ならまだQTextBrowserの方が速いな
QWebViewは日本語文字列の描画が極端に遅くて、レス1000個描画するのにQTextBrowserの倍くらい時間がかかる
開発はマルチバイト文字軽視し過ぎなんじゃないのか・・・

506:デフォルトの名無しさん
10/05/09 19:28:17
>>505
>開発はマルチバイト文字軽視し過ぎなんじゃないのか
マルチバイトが不要な人達が開発しているから、どうしても後付けだからね。

507:デフォルトの名無しさん
10/05/09 20:00:58
ファイルをアップロードしたいので
URLリンク(www.qtcentre.org)
の最後のレスを参考に
URLリンク(codepad.org)
としてみたのですがアップロードできません
なにが不味いのかわかりますでしょうか?

cgiの方はURLリンク(codepad.org)です

508:デフォルトの名無しさん
10/05/09 22:58:11
アップロードできないとは具体的にどうなるの?
エラー落ちするのか、リクエストが送信されないのか、ファイルが保存されないのか、それすら分かってないのか
コード貼るのは偉いけど、エラー内容は各自で調べてくださいって言われても正直面倒だよね

509:デフォルトの名無しさん
10/05/09 23:09:54
>>508
すいませんでした
とくにエラーもなく終了します
wiresharkで監視したところPOSTリクエスト自体は発行されていました

ちなみにcgiが動作はブラウザで確認しています


510:デフォルトの名無しさん
10/05/09 23:35:27
ここが2択を強いる糞ライブラリのスレか

511:デフォルトの名無しさん
10/05/09 23:56:49
>>509
じゃあブラウザからアップロードした時のリクエストと、
>>507のプログラムからアップロードした時のリクエストを比較すればいいんじゃないかな

512:デフォルトの名無しさん
10/05/11 12:44:48
>>507
boundaryの使い方がめちゃくちゃ

513:デフォルトの名無しさん
10/05/14 18:50:44
QtCreator って、ファイルを16進ダンプで表示できない?


514:デフォルトの名無しさん
10/05/14 19:44:57
tableViewWidgetでGUIから要素を変更とかできるんでしょうか?
URLリンク(www.saltycrane.com)
ここのサンプルから勉強してるんですが、要素の変更ができないっす。。。

515:デフォルトの名無しさん
10/05/14 20:28:29
ubuntuでQt creatorを使って書いたプログラムをWindows環境に持ってきたんだけど、2点ほど困ったので教えてください。
MinGW版です。

・QScrollBarのmaxとminの差が大きい時、スライダを大きく動かそうとすると、マウスの動きに追随してこない。
 マウスが0.5秒くらい止まって初めてスライダがその位置に飛んでくる感じ。
 trackingはonにしてあるし、Ubuntuの時は感じなかったのだけど。

・アイコンが表示されない。
 新しくプロジェクトを作っても駄目なので、何かの設定がおかしいのだとは思いますが・・・。

516:デフォルトの名無しさん
10/05/14 21:01:03
>>513
プロジェクトの中のファイルを右クリックして エディタを指定して開く > Binary Editor

517:513
10/05/15 09:28:43
>>516
ありがとうございました。
でも、ファイルデータの内容を確認したかったんですが、これはプロジェクト内の
テキストしか表示できないんですね。残念


518:デフォルトの名無しさん
10/05/15 09:47:01
>>514
むり

519:デフォルトの名無しさん
10/05/15 12:39:52
>>515
URLリンク(qt-labs.jp)

520:デフォルトの名無しさん
10/05/16 02:39:54
QListIteratorについて質問させてください。
1, 2, 3, 4という要素が入ったリストを->キーを押すたびに1から順に、もしくは<-キーで戻ったところの1つ次から表示したいのですが
進んだ後に<-で戻る、もしくは戻った後に->で進もうとすると1回目がうまくいきません(<-で戻って表示したところと同じところがもう一度表示される)

-> 1が表示される
-> 2が表示される
-> 3が表示される
<- また3が表示されてしまう
<- 2が表示される
(進むのにQListIterator::next()、戻るのにQListIterator::previous()を使用しています。)

直前にどちらを使ったかでフラグを立てることで一応うまく行くと思うのですが、もっとスマートな方法はないでしょうか。よろしくお願いします。

521:デフォルトの名無しさん
10/05/16 03:03:44
->のとき
表示; next();
<-のとき
previous(); 表示;

じゃだめ?

522:520
10/05/16 03:36:59
>>521
ありがとうございます。
ただ、next()やprevious()を使わないとデータを取り出せないようなのでそれは出来ないみたいです・・・

523:デフォルトの名無しさん
10/05/16 04:06:05
JavaスタイルイテレータよりもC++スタイルイテレータ使ったほうが良いだろうね。その場合は。

524:520
10/05/16 15:16:48
>>521, 523
STLスタイルを使用することで解決出来ました。
ありがとうございました。

表示(i.previous())」を「i.previous; 表示(i.previous()); i.next()」に置き換えることでJavaスタイルでも一応うまくいきました。

525:デフォルトの名無しさん
10/05/16 21:41:20
QtCreatorに既存のクラスに新しくメソッドを追加するコマンド等はありますか?

526:デフォルトの名無しさん
10/05/16 22:07:23
何がしたいのかもう少し詳しく書かないと、質問の意図がわからん。

527:デフォルトの名無しさん
10/05/17 01:34:29
VCのクラスデザイナみたいなものを期待しているなら
標準では存在しない

528:デフォルトの名無しさん
10/05/18 20:55:46
qt4でテトリスを作りたいんだけど、格子状の線を引きたい
どのクラスを使えばできるの?

529:デフォルトの名無しさん
10/05/18 21:25:17
URLリンク(doc.trolltech.com)

530:デフォルトの名無しさん
10/05/18 22:00:02
Qt Creatorでビルドする際、コンパイル前に任意のコマンドを実行させる方法があったら
教えてください。リンク前なら、.proファイルでQMAKE_PRE_LINKを設定しておけば
できるようですが、コンパイル前に実行するコマンドの指定というのは、qmake Variable
Referenceを探しても見つけられませんでした。

具体的に何をやりたいのかと言うと、TortoiseSVNのSubWCRevコマンドで、ソースコード
にSubversionのリビジョン番号を埋め込んでからコンパイルしたいのです。

531:デフォルトの名無しさん
10/05/19 10:40:40
>>530
プロジェクト
ビルドステップを追加
順番age

532:530
10/05/19 20:15:06
>>531
おー、そっちでしたか。そちらには発想が行きませんでした。
ありがとうございました。


533:デフォルトの名無しさん
10/05/21 00:35:46
これってVS2010で使える?

534:デフォルトの名無しさん
10/05/21 08:12:11
FAQ

535:デフォルトの名無しさん
10/05/21 15:57:23
>>533
ちょうどここ↓にその話題が出てる。
URLリンク(qtusersforum.s2.zmx.jp)

536:デフォルトの名無しさん
10/05/22 02:15:17
Qt Creatorを英語化するのってどこだっけ?
ヘルプが英語なのにメニューが日本語だと逆に探せねぇorz

537:デフォルトの名無しさん
10/05/22 06:28:59
Qt Creator のインストールディレクトリ以下の、share/qtcreator/translations の中にある
qtcreator_ja.qm を一時的にリネーム(先頭に _ 付けるとか)してやると英語になるよ。
もしかすると qt_ja_JP.qm もリネームする必要があるかも。

538:デフォルトの名無しさん
10/05/22 10:02:46
>>537
さんくす。

539:デフォルトの名無しさん
10/05/25 20:33:20
>>538

540:デフォルトの名無しさん
10/05/28 09:39:03
test

541:デフォルトの名無しさん
10/05/29 22:50:06
Creator の使い方を学ぼうとしているのですが
Qt Creator 1.0.0 (Linux, 64bit, Ubuntu)をで class を (たとえば
QLineEditを継承して)promote しても何もファイルは自動生成されません
web で調べた感じだと自動生成されるはずみたいなのですが実際どうなのでしょうか?
promote する際のメニューには自動生成に関係するものは無さそうです

自分で手書きで class 定義を加えると
no matching function call to xxx::xxx(QWidget*&)
といったエラーメッセージが出てしまいます(xxxは継承した class 名)
ただこれを全部手書きで加える必要があるのもIDEとしておかしい気がします

多分使い方を間違っているのではないかと考えているのですが





542:デフォルトの名無しさん
10/05/29 23:08:49
なんで 1.0.0 なんて古いのをつかってるんだ?
まずは 1.3.1 か 2.0-beta1 を試してみれば。

543:デフォルトの名無しさん
10/05/30 00:39:36
どうもありがとうございます
もう安定しているだろうと思ってレポジトリにあったものを使っていました
本家のを入れ直してみます

544:デフォルトの名無しさん
10/05/30 08:23:04
>>541
Qt Creator1.3.1でも自動生成はされないよ。

[格上げ](promote to)をやっておいてから、メインメニューの[ファイル]⇒
[ファイル/プロジェクトの新規作成]で[C++ クラス]を選択して、ウイザードで
必要な情報を記入して進めば、ソースとヘッダーファイルが作成されるから、
後は手書きするしかない(1.3.1はGUIが最初から日本語化されてるから日本語
GUIの表現で書いてる)。

自動作成してくれてもいいと思うのは同意だけど、やってみるとそんなに面倒じゃ
ない。

545:543
10/05/30 15:16:53
どうもありがとう
1.3.1にしてもやはり自動生成されないので何を間違えたのかと悩んでいました
クラス生成で Widget から継承してうまく行きました
なんか感じが少し分かった気がします

Trolltech の docs も結構見たんですが,意外と Creator を最大限
に利用する方法って見つからないんですよね
ガシガシ書くだけなら例はあるんですがせっかくの IDE なので「正しく」使いたいなと思って

546:544
10/05/30 21:11:42
>>545
どういたしまして。

> Trolltech の docs も結構見たんですが,意外と Creator を最大限
> に利用する方法って見つからないんですよね

確かに。何となく「Qt Designerのマニュアルを見ろ」みたいな感じで...
それでも見つからないのもあるね。

例えば今回の「格上げ先を指定」のダイアログの中にある、「グローバル
にインクルードする」というチェックボックスの意味がわからないし、説明も
どこにも見当たらない。

どなたか知ってます?

547:デフォルトの名無しさん
10/05/30 23:33:44
>>546
"~" か <~> の違いです。

548:546
10/05/31 21:23:57
>>547
サンクス。それだけなんだぁ。
何か間違い探しみたい。

549:デフォルトの名無しさん
10/06/01 23:06:05
1 :名無しさん@どっと混む:2009/12/14(月) 20:45:15 ID:unnBMLw10
高根社長のSM趣味サイトMaskRと
副業のSMクラブ銀座プレジス・動画配信専門リアルミストレスばかり語られるが
高根社長の本業コムラッドについても語ろう

銀座プレジス
URLリンク(www.prezis.jp)

MaskR
URLリンク(maskr.com)

プレジスを語ろう
スレリンク(sm板)

動画配信専門リアルミストレスってどうよ?
スレリンク(sm板)

9 :名無しさん@どっと混む:2010/01/03(日) 18:27:00 ID:RSEbBiG0O
高値はもう大麻やめたの?

10 :名無しさん@どっと混む:2010/01/04(月) 05:15:29 ID:A3l1qdv+O
タカネ社長ってどうやってばれないように脱税してんだろ?
億単位で脱税して億ション暮らしなんて凄いよな
監査役の奥さんもグルなのか?

12 :名無しさん@どっと混む:2010/01/05(火) 01:47:06 ID:KAHwqMrBO
株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade
株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade株式会社コムラッド株式会社Comrade

13 :名無しさん@どっと混む:2010/01/05(火) 01:47:47 ID:KAHwqMrBO
高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉高根英哉

550:デフォルトの名無しさん
10/06/01 23:06:51
18 :名無しさん@どっと混む:2010/01/07(木) 09:26:06 ID:5NL2jyJpO
高根はMASKRでレイプ仲間募集するのやめたんだね
mixiで募集中か

21 :名無しさん@どっと混む:2010/01/10(日) 19:36:45 ID:FdRwgXUTO
風俗店やってるってことは高根社長は暴力団と繋がってるんだね
どこの組にいくらみかじめ料払ってるんだかw

23 :名無しさん@どっと混む:2010/01/23(土) 03:43:12 ID:Pdcv8aq0O
タカネ社長未成年に酒飲ませてレイプ

24 :名無しさん@どっと混む:2010/01/29(金) 18:16:06 ID:zMwtdkIsO
高根社長のレイプ趣味は病気だから治らない

25 :名無しさん@どっと混む:2010/02/01(月) 01:39:32 ID:uaH5mo2nO
前科者

26 :名無しさん@どっと混む:2010/02/09(火) 00:52:46 ID:JwGmN2cG0
>>25
容疑はレイプ?買春?管理売春?公然猥褻?薬物?脱税?詐欺?傷害?

28 :名無しさん@どっと混む:2010/02/14(日) 22:56:30 ID:lykq8x1VO
どこかのスレで人を死に追いやったと書いてあった

33 :名無しさん@どっと混む:2010/03/04(木) 12:49:19 ID:J8YxaRGO0
金がないって脱税がばれて追徴課税でも来たか?
せっかく脱税の隠れ蓑にプレジス営業してるのに残念だったなw

38 :名無しさん@どっと混む:2010/03/12(金) 21:09:53 ID:L0W4+sivO
首吊り首絞めプレイ大好き高根英哉

551:デフォルトの名無しさん
10/06/01 23:08:00
53 :名無しさん@どっと混む:2010/05/17(月) 13:14:06 ID:E/7OZVtz0
>>18
高根英哉blogでレイプ仲間募集中

私とともにマスクの女どもを弄ぶ仲間を募集する
急に思いついたら連絡をして、集まれるような仲間だ
だから、複数名募集するし、いついつという日時があるわけでもない
条件は以下のとおりだ
    ・SMを実践している、または興味がある
    ・マスクを用意できる
    ・都内でイベント参加できる
    ・イベント内容およびこの仲間を通じて知りえた情報を口外しない
    ・成人男子である
    ・携帯電話および携帯メールアドレスを私に公開できる
    ・酒が好きである
希望者は私宛にメールを送ってほしい
全員が参加できるわけでもないので、こちらの選択に任せてもらう
なるべく想いを書いてもらうほうがわかりやすいし
経験や顔写真も歓迎。
r2007@maskr.com
maskr_2008@yahoo.co.jp
hide@comrade.co.jp

552:デフォルトの名無しさん
10/06/02 11:42:43
Qt Creator 1.3.1をLinuxで使っていてプロジェクトを他のところからコピー
してクリーン,ビルドするとCreatorからはPermission deniedとなってしまいます
実行ファイルはできていてターミナルやファイルブラウザからは不思議な事に普通に走ります

どうしたらCreator内からも走るようになるのか分かっている方いたら教えて下さいますか?

553:デフォルトの名無しさん
10/06/02 13:03:21
質問です:

QString qsBuf;
に文字列が入ってるとして、
この文字列をUTF8ととして、
std::string sBuf;
に入れるにはどういうコードになりますでしょうか?

OSはWindows(とMAC OS X)を想定しています。


554:デフォルトの名無しさん
10/06/02 13:08:58
>>553
URLリンク(doc.qt.nokia.com)

555:デフォルトの名無しさん
10/06/02 13:51:26


見てみると、
>std::string sBuf = qsBuf.toStdString();
みたいな感じですか?

>QString::toUtf8() const
の使い方や意味が丸で分からない感じなんですが。。。

556:デフォルトの名無しさん
10/06/02 14:35:57
この程度の英語辞書引けば中学生でも読めるだろ。

toStdString()はtoASCII()呼んでるから、QTextCodec::setCodecForCStrings()見るって書いてる。
これにUTF8セットしてるなら
>std::string sBuf = qsBuf.toStdString();
でいいんじゃね?

557:デフォルトの名無しさん
10/06/02 14:43:12
>>555
4.7 のドキュメントの方が少し詳しいな。
URLリンク(doc.qt.nokia.com)

QString::toStdString() は toAscii() を使っているが、
toAscii() は QTextCodec::codecForCStrings() を使って QString を std::string へ変換する。
ので、 >>5 を参考に QTextCodec::setCodecForCString() で UTF-8 のコーデックを指定するといい。
toUtf8() は QByteArray へ変換するのでこの場合は使わない。

setCodecForCString() の副作用が気になる場合は
std::string str( qstring.toUtf8().constData() );
でも行けるはず。

558:デフォルトの名無しさん
10/06/02 14:47:56
これ、数字の三桁区切り簡単にできるのね
便利だわ


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch