• [soccerwindow2] Qt3への移植開始.(akiyama) 18:57:25

こんなことをやっている場合では無いのだけど,息抜きがてらに始めてみた. 基本的に,Qt4バージョンのソースをそのままコピーしてきて,コンパイルエラーを逐一潰していく形で移植作業を行っている. ウィジェットの親子関係の記述方法が若干異なっているのを書き直し,関数名の変更に追従し,一部やクラスがあったり無かったりするので代替機能で実装し直さなければならない. しかし,思っていたよりは修正内容は軽微なもので,プログラムの設計から直すなどということにはならなさそう. Qt3はQt4よりも長く使われているだけあって,ドキュメントやサンプルが更に充実しているので,このまま悩むこと無く淡々と移植作業が進められるだろう.

主要な修正内容は以下のとおり.

  • #include <QtGui> を #include <qt.h> に修正.
  • QWidget::setLayout()が使用できないので,QLayoutのコンストラクタで親ウィジェットを指定.
  • QLayout::addWidget()によってレイアウトに追加されるウィジェットは,そのコンストラクタで親ウィジェットを指定しなければならない.(Qt4では,このような場合,親ウィジェットの指定は不要だった)
  • QActionのコンストラクタで,QIcon -> QIconSet
  • QAction::setShortcut() -> QAction::setAccel()
  • QAction::setCheckable() -> QAction::setToggleAction()
  • QAction::setChecked() -> QAction::setOn()
  • QToolBar::addAction() -> QAction::addTo()
  • QSettingsのコンストラクタ.
  • QSettingsでQVariantの読み書きが出来ないので,各型を直接指定して読み書き.
  • QUdpSocketが無いので,QSocketDeviceとQSocketNotifierでUDP通信を再実装.
  • QString::fromStdString() -> QString::fromAscii()
  • QString::toStdString() -> QString::ascii()
  • QGridLayout::setColumnMinimumWidth() -> QGridLayout::setColSpacing()
  • QPenのコンストラクタ引数のQBrushをQColorで置換.
  • QPainterPathが無いので,QPainterでの描画に置換.

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-03-14 (月) 14:51:37 (2049d)
SourceForge.JP
Creative Commons License
RoboCup tools by Hidehisa Akiyama is licensed under a Creative Commons 表示-非営利 2.1 日本 License.