FreeOZ论坛

标题: Qt问题求助。 [打印本页]

作者: GPS    时间: 20-5-2009 00:45
标题: Qt问题求助。
我用QSqlQueryTableModel和QTableView来显示和修改数据库。 有几个问题。
1。 我用setEditStrategy( QSqlTableModel::OnManualSubmit        ), 那么是否在 submitAll() 时要检查错误用revertAll()来实现transacetion 的rollback?
2. 怎样在修改时提供数据的validation? 怎样在修改时就validate? 还是只能在submit的时候一起检查?

请高手解说一下吧。
作者: coredump    时间: 20-5-2009 01:04
1. should be ok
2. use appropriate signals
作者: GPS    时间: 20-5-2009 23:11
谢谢core.
我用dataChanged(),但是他是在cell的data changed 之后才发出的。beforeInsert, beforeUpdate 都是对一个ROW的。有没有专门对于cell的beforeChanged之类的?可以在修改前检查新数据,如果不对,可以恢复到原来的数据。
作者: coredump    时间: 20-5-2009 23:23
如果用QTableWidget的话可以用QTableWidget::cellChanged(), 你用dataChanged()也正确,检测完如果不对再改过去就是,也可以检测QTableView的信号,比如键盘和鼠标相关的信号。

如果对默认的编辑行为不满意,还可以通过QAbstractItemView::setItemDelegate()自定义Delegate实现。
作者: GPS    时间: 27-5-2009 18:10
coredump, 又有新问题了。
我用在C++的APP中QWebView,但是因为web用cookie来保存login 信息, 结果,在QWebView中没法用,看了不少地方说QWebView不支持cookie, 请问怎么处理? 谢谢。
作者: coredump    时间: 27-5-2009 18:26
标题: 回复 #5 GPS 的帖子
  1. view->page()->networkAccessManager()->cookieJar()
复制代码
see more about QNetworkCookie: http://doc.qtsoftware.com/4.5-snapshot/qnetworkcookie.html
作者: justinli79    时间: 27-5-2009 19:11
没用过的人路过...
作者: GPS    时间: 28-5-2009 01:40
我还是不太清楚QWebView。它是不是就象个内嵌的browser? 能不能我把目标的url设了,就可以一直在里面切换? 如果可以,应该怎么样enable cookie?就象一般的浏览器?
麻烦,再讲讲整个 webkit的作用吧。

另外,QSqlDatabase只能在同一个thread里用,那么在 db = QSqlDatabase::addDatabase("PSQL", "connName");
指的是db只能在同一个线程中用吧? 那么"connName"这个名字是不是在不同线程中可以重复用呢?

如果, 在MainWindow下有两个并列的子Dialog,应该是每个Dialog有自己的thread, 在Dialog A 中的db, 可以在B中用马? 或者,在MainWindow中的db能在dialog A /B中用马?

我用QTableView 和 QSqlTableModel 来显示和修改, 可是有些COLUMN,只想显示,不让修改,我用model->record()->setGenerated("col_cant_changed", false);怎么不起作用阿? 好像, model->reocrd()返回的是一个 copy, 我该这个copy,并不能改变model中的那个。 我用model->submitALl()来update.

另外, 在QSqlTableModel中,引用的表没有primary Key, 结果, submitAll并不修改表,加了primary key就可以了, DB 是 postgresql, 是什么原因呢? 能不能不加primarykey, 也可以通过submitALl来修改的?


谢谢。

[ 本帖最后由 GPS 于 28-5-2009 01:06 编辑 ]
作者: coredump    时间: 28-5-2009 11:50
标题: 回复 #8 GPS 的帖子
太细节了,这要都讲了,干脆你的活就让我干了得了。

QT的所有源代码都在那里,文档也写得非常棒,还有一大堆demos, examples,关于Webkit的部分,甚至有一个完整的浏览器作为demo(在demos\browser目录下,全部代码也没多少), 细节的东西还是要自己去做实验,钻研钻研,光靠问不行的。
作者: GPS    时间: 28-5-2009 12:34
呵呵,看来要找个QT论坛去了。谢谢。
作者: coredump    时间: 28-5-2009 12:44
标题: 回复 #10 GPS 的帖子
http://www.qtcentre.org

or

qt maillists are better places for detail QT questions.
作者: GPS    时间: 28-5-2009 12:47
Thanks. I've found qtcentre too. Will go there.




欢迎光临 FreeOZ论坛 (https://www.freeoz.org/bbs/) Powered by Discuz! X3.2