亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2125 | 回復(fù): 0
打印 上一主題 下一主題

Qt實現(xiàn)類似shell的東東 可是用不了 錯在哪里呢 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2014-04-01 16:22 |只看該作者 |倒序瀏覽

  1. #include "shelldemo.h"
  2. #include <QLineEdit>
  3. #include <QTextBlock>
  4. #include <QDebug>
  5. #include <QPlainTextEdit>
  6. //#include <private/qplaintextedit_p.h> //無法找到

  7. #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
  8. #include <private/v8.h>
  9. #endif

  10. ShellDemo::ShellDemo(QWidget *parent) :
  11.     QPlainTextEdit(parent)
  12. {
  13.     setReadOnly(true);

  14.     QFont font = this->font();
  15.     font.setPointSize(font.pointSize()+2);
  16.     this->setFont(font);

  17.     appendPlainText(">>> ");
  18.     edit = new QLineEdit(this->viewport());
  19.     edit->setStyleSheet("border-style:none; background-color:transparent;");

  20.     connect(edit, SIGNAL(returnPressed()), SLOT(onEditFinished()));
  21.     //connect(verticalScrollBar(), SIGNAL(valueChanged(int)), SLOT(onScrollBarValueChanged()));
  22. }

  23. void ShellDemo::resizeEvent(QResizeEvent *e)
  24. {
  25.     updateEditPosition();
  26. }

  27. void ShellDemo::onScrollBarValueChanged()
  28. {
  29.     updateEditPosition();
  30. }

  31. QString ShellDemo::runCommand(const QString &cmd)
  32. {
  33.     return QString("Result of %1").arg(cmd);
  34. }

  35. void ShellDemo::onEditFinished()
  36. {
  37.     QString cmd = edit->text();
  38.     if (cmd.isEmpty()) {
  39.         return;
  40.     }
  41.     moveCursor(QTextCursor::End);
  42.     insertPlainText(cmd);
  43.     //edit->hide();
  44.     edit->clear();

  45.     appendPlainText(runCommand(cmd));

  46.     appendPlainText(">>> ");
  47.     updateEditPosition();
  48.     edit->show();
  49.     edit->setFocus();
  50. }

  51. void ShellDemo::updateEditPosition()
  52. {
  53.     QPlainTextEditPrivate *d = reinterpret_cast<QPlainTextEditPrivate*>(qGetPtrHelper(d_ptr));

  54.     //QRectF rect = d->control->blockBoundingRect(d->control->document()->lastBlock());  //無法通過編譯
  55.     //edit->move(rect.topRight().toPoint());
  56.     //edit->resize(viewport()->size().width(), edit->size().height());
  57. }
復(fù)制代碼
按照 http://blog.csdn.net/dbzhang800/article/details/6751775 的方法在qt4.85環(huán)境下無法編譯通過

報錯信息是
錯誤1 找不到#include <private/qplaintextedit_p.h>

錯誤2 invalid use of undefined type ‘struct QPlainTextEditPrivate’
/usr/local/Trolltech/Qt-4.8.5/include/QtGui/qplaintextedit.h:65: 錯誤:forward declaration of ‘struct QPlainTextEditPrivate’

就是出在 QRectF rect = d->control->blockBoundingRect(d->control->document()->lastBlock()) 這一句
好像私有類不能這么用
求高人解釋 急求!
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP