lia*_*iaK 3 c++ qt undo qt4
我使用Qt 4.5,并C++在Windows XP上.
Qt 4.5
C++
基本上我将有一个UI,用户将输入一些数据.他可以去修改UI中可用的值.UI将具有基本的Qt UI元素,如QLineEdit,QTableWidget等等,
QLineEdit
QTableWidget
所以现在,如果用户按下Undo按钮(或Ctrl+Z),则应在相应的UI元素中保留先前的值.
Undo
比方说,如果有QLineEdit文本25.现在用户修改为30.现在通过单击撤消,应保留旧值25.
与通常在许多应用程序中可用的撤消功能类似.有什么办法吗?
gsp*_*spr 7
你可以使用Qt的撤销框架.
unw*_*ind 5
实现撤消的典型方法是表示用户完成的每个操作,并存储它们.您还希望能够计算给定操作的反转.
因此,对于插入文本缓冲区,操作将存储插入的文本以及插入发生的位置.然后,逆变为删除,在相同位置和插入文本的大小.
当用户要求应用程序撤消时,只需查看最近存储的操作,然后执行其反向操作.如果您现在不是删除"花费"操作而是记住它,那么您可以通过在操作历史中移动另一种方式来实现重做.
请注意,这是一个抽象的通用解释; 正如其他答案所指出的那样,Qt已经有了实施Undo的框架,所以你当然应该先调查一下.
归档时间:
15 年,1 月 前
查看次数:
3879 次
最近记录:
13 年,2 月 前