设置窗口Qt example 之 简易字典
改章节是一篇关于设置窗口的帖子
升级到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 之 简易字典相关推荐
- Qt example 之 简易字典
升级到ubuntu 13.04,好端端的一个goldendict竟然不能用了. 能力有限解决不了这个问题,又不想用星际译王,只好使用网页词典, 网页词典使用浏览器窗口太大,内容太多,笔记本屏幕太小,不 ...
- qt使用样式表设置窗口widget为圆角
提要 窗口widget是无法直接通过样式表设置为圆角的,需要在窗口QWidget中拖入控件QFrame,将QFrame设置的和窗口QWidget一样大小,将窗口QWidget中需要的控件拖入到QFra ...
- qtabwidget放大_Qt自定义弹窗屏蔽父窗口(QWidget设置setWindowModality(Qt::ApplicationModal);以后再show)...
写Qt程序时遇到一个问题: Qt自带的弹窗功能单一,所以须要自己用ui设计弹窗的内容,这样弹窗就和普通窗口一样了,但问题是这个弹窗显示后父窗口还是活动的.网上找了很久找到了解决办法: Qt::Wind ...
- qt设置窗口不在任务栏上显示
可以通过设置窗口标志来实现. 调用QWidget的setWindowFlags()函数. 设置为Qt::Tool.Qt::SubWindow. Qt::Popup可以达到目的. 但是这样做会有副作用: ...
- 【QT小记】设置窗口背景透明
// 窗口无边框 setWindowFlags(this->windowFlags() | Qt::FramelessWindowHint); // 设置窗口背景透明 (需要设置窗口为无边框的才 ...
- Qt 设置窗口背景图片的几种方法实例
1.在paintEvent事件中绘制图片 void Widget::paintEvent(QPaintEvent * ev) {QPainter painter(this);painter.drawP ...
- Qt之QWidget设置窗口背景图片的几种方法
Qt之QWidget设置窗口背景图片的几种方法 几种方法如下: 1.使用调色板QPalette来设置图片 QPalette pal =this->palette(); pal.setBrush( ...
- VS2017 + Qt设置窗口置顶与不置顶的注意问题
Qt中默认的设置窗口置顶的方法是: Qt::WindowFlags flag = windowFlags(); setWindowFlags(flag | Qt::WindowStaysOnTopHi ...
- Qt 之 设置窗口边框的圆角
Qt技术学习班开始了,更多精彩.好玩的内容等着你,赶紧报名吧! 群号:655815739 Qt在设置窗口边框圆角时有两种方式,一种是设置样式,另一种是在paintEvent事件中绘制窗口.下面分别叙述 ...
最新文章
- [LeetCode 120] - 三角形(Triangle)
- 【杂题总汇】NOIP2013(洛谷P1967) 货车运输
- node 多进程 vs java_node多进程服务器
- c语言pow函数用法_C语言基础的不能再基础的程序知识!“hello world”!
- [导入]Netron研究(二)----容器登场
- python必考面试题目
- 如何修改php的网页文件,php如何修改php文件内容
- HDU 4054 Number String
- shell脚本修改文本中匹配行之前的行的方法
- 直击WinRoute
- 你的主机中的软件中止了一个已建立的连接。_winscp中文版,winscp中文版软件的使用技巧...
- 为什么我不建议你用去 “ ! = null “ 做判空?
- javascript对行单击事件处理(委托事件)
- 数据库 char nchar varchar nvarchar 区别
- ios 纯代码怎么适配ipad_iOS屏幕适配(纯代码)
- UICollectionView教程:重用、选择和排序
- NLP学习(二)—中文分词技术
- 数据库视图有什么作用
- 《数据结构》-图的六度空间理论(二)
- Job Statement