改章节是一篇关于设置窗口的帖子

升级到ubuntu 13.04,好端端的一个goldendict竟然不能用了。

能力无限解决不了这个问题,又不想用星际译王,只好使用网页词典,

网页词典使用浏览器窗口太大,内容太多,笔记本屏幕太小,不适合我这个边看外文资料,边查字典的人。

于是这个简单有效的小字典就诞生啦。

截图:

 

源码可在文件末端附件下载

单词查询来自有道词典:http://dict.youdao.com/

思路:

c++ 获得从qml输入的String

qml 获得从c++从dict网址获得的并经过处置的String

qml的翻译按钮触发c++ requestHttp()。

Using QML in C++ Applications

的翻译http://www.cnblogs.com/hicjiajia/archive/2012/01/30/2332266.html

qml 访问C++:

有两种情况:

1.读取简单的数据

2.读取class中的成员数据

介绍如何访问class中的成员,是通过访问class中的方法来到达修改或读取成员变量的。

常用的两种方法:

1).通过Q_INVOKABLE

//main.cpp 中

    Dictdict;

    QDeclarativeEngine*engine=viewer.engine();//供给C++初始化QML控件的环境

    QDeclarativeContext*context=engine->rootContext();

    //设置context

    context->setContextProperty("dictString",&dict); //将对象暴露给QML

///dict.cpp中

Q_INVOKABLE

void

requestHttp

(

QString

string

);

Q_INVOKABLEQStringreadString()const{return*chinString;}

//main.qml中

text:dictString.readString()

dictString.requestHttp(textInput.text)

//直接可以使用c++端的方法。

2).通过向qml注册C++类。

//main.cpp

qmlRegisterType<Dict>("registerDict",1,0,"Dict");

//main.qml

import registerDict 1.0

....

text:dict.requestHttp( ); //直接使用Dict的实例中的方法

.......

Dict{

id:dict

}

-----------------------------------------------

c++端signals在qml端handler

//dic.h

signals:

void stringChanged()

    //main.qml

Connections{

target:dictString

           onStringChanged:

mainScreenText

.text=

dictString

.readString()

}    //不管C++端stringChanged()信号函数首字母有无大写

//在qml端在on后面首字母都必须大写。

--------------------------------------------------

窗口巨细的设置感激厨师在http://blog.csdn.net/sgnh123456/article/details/8020249提到

这是因为,在view的变动巨细的模式默认被设置成SizeViewToRootObject,须要自己修改ResizeMode。代码片段如下:

每日一道理
爱,有的时候不须要山盟海誓的承诺,但她一定须要细致入微的关怀与问候;爱,有的时候不须要梁祝化蝶的悲壮,但她一定须要心有灵犀的默契与投合;爱,有的时候不须要雄飞雌从的追随,但她一定须要相濡以沫的支持与理解。

//设置模式Mode为可以调整qml巨细,默认:QDeclarativeView::SizeViewToRootObject

view

.

setResizeMode

(

QDeclarativeView

::

SizeRootObjectToView

);

view

.

showMaximized

();

如果view是

QmlApplicationViewer,

那么参数就是:

    

QmlApplicationViewer::SizeRootObjectToView

    -------------------------------------------

    

    

Constant Value Description
QDeclarativeView::SizeViewToRootObject 0 The view resizes with the root item in the QML.
QDeclarativeView::SizeRootObjectToView 1 The view will automatically resize the root item to the size of the view.

    这样就能更加加深理解QDeclarativeView或QmlApplicationViewer的作用了。

    这两个类供给一个窗口(有自己的巨细)来表现目的qml里所描述的画面。

    ----------------------------------------------------------

    //在main.cpp中添加

    

viewer

.setResizeMode

(

QDeclarativeView

::

SizeViewToRootObject

);//窗口随RootObject巨细而变更

--------------------------------------------------------

--------------------------------------------------------

KeysEvent:要先获得focus才能触发KeysEent

focus:true
Keys.onPressed:{

dictString

.requestHttp(

textInput

.text)

mainScreenText

.text=

dictString

.readString()

}

---------------------------------------------------------

附件:

http://download.csdn.net/detail/teamossp/5468643

文章结束给大家分享下程序员的一些笑话语录: 现在社会太数字化了,所以最好是有一个集很多功能于一身的设备!

--------------------------------- 原创文章 By
设置和窗口
---------------------------------

转载于:https://www.cnblogs.com/xinyuyuanm/archive/2013/05/28/3105138.html

设置窗口Qt example 之 简易字典相关推荐

  1. Qt example 之 简易字典

    升级到ubuntu 13.04,好端端的一个goldendict竟然不能用了. 能力有限解决不了这个问题,又不想用星际译王,只好使用网页词典, 网页词典使用浏览器窗口太大,内容太多,笔记本屏幕太小,不 ...

  2. qt使用样式表设置窗口widget为圆角

    提要 窗口widget是无法直接通过样式表设置为圆角的,需要在窗口QWidget中拖入控件QFrame,将QFrame设置的和窗口QWidget一样大小,将窗口QWidget中需要的控件拖入到QFra ...

  3. qtabwidget放大_Qt自定义弹窗屏蔽父窗口(QWidget设置setWindowModality(Qt::ApplicationModal);以后再show)...

    写Qt程序时遇到一个问题: Qt自带的弹窗功能单一,所以须要自己用ui设计弹窗的内容,这样弹窗就和普通窗口一样了,但问题是这个弹窗显示后父窗口还是活动的.网上找了很久找到了解决办法: Qt::Wind ...

  4. qt设置窗口不在任务栏上显示

    可以通过设置窗口标志来实现. 调用QWidget的setWindowFlags()函数. 设置为Qt::Tool.Qt::SubWindow. Qt::Popup可以达到目的. 但是这样做会有副作用: ...

  5. 【QT小记】设置窗口背景透明

    // 窗口无边框 setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint); // 设置窗口背景透明 (需要设置窗口为无边框的才 ...

  6. Qt 设置窗口背景图片的几种方法实例

    1.在paintEvent事件中绘制图片 void Widget::paintEvent(QPaintEvent * ev) {QPainter painter(this);painter.drawP ...

  7. Qt之QWidget设置窗口背景图片的几种方法

    Qt之QWidget设置窗口背景图片的几种方法 几种方法如下: 1.使用调色板QPalette来设置图片 QPalette pal =this->palette(); pal.setBrush( ...

  8. VS2017 + Qt设置窗口置顶与不置顶的注意问题

    Qt中默认的设置窗口置顶的方法是: Qt::WindowFlags flag = windowFlags(); setWindowFlags(flag | Qt::WindowStaysOnTopHi ...

  9. Qt 之 设置窗口边框的圆角

    Qt技术学习班开始了,更多精彩.好玩的内容等着你,赶紧报名吧! 群号:655815739 Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述 ...

最新文章

  1. [LeetCode 120] - 三角形(Triangle)
  2. 【杂题总汇】NOIP2013(洛谷P1967) 货车运输
  3. node 多进程 vs java_node多进程服务器
  4. c语言pow函数用法_C语言基础的不能再基础的程序知识!“hello world”!
  5. [导入]Netron研究(二)----容器登场
  6. python必考面试题目
  7. 如何修改php的网页文件,php如何修改php文件内容
  8. HDU 4054 Number String
  9. shell脚本修改文本中匹配行之前的行的方法
  10. 直击WinRoute
  11. 你的主机中的软件中止了一个已建立的连接。_winscp中文版,winscp中文版软件的使用技巧...
  12. 为什么我不建议你用去 “ ! = null “ 做判空?
  13. javascript对行单击事件处理(委托事件)
  14. 数据库 char nchar varchar nvarchar 区别
  15. ios 纯代码怎么适配ipad_iOS屏幕适配(纯代码)
  16. UICollectionView教程:重用、选择和排序
  17. NLP学习(二)—中文分词技术
  18. 数据库视图有什么作用
  19. 《数据结构》-图的六度空间理论(二)
  20. Job Statement

热门文章

  1. Linux上无法杀掉redis、redis-sentinel进程
  2. Fastcopy每日定时备份
  3. “书中自有颜如玉”读书打卡计划,大众评审环节,第1周读后感精选
  4. Xee³ for Mac v3.5.4 优秀的图片浏览工具
  5. 微软内部职务分类和待遇
  6. 【文件】2014年国家助学贷款有关工作的通知
  7. 《WeNet语音识别实战》答疑回顾(一)
  8. 坚定关于考研或者工作的决定:work
  9. Oracle期中考试上机试题
  10. 联想电脑chrome浏览器打开总是自动跳转到百度界面