
在一个应用程序上工作,我有选项卡名称的问题。 当我点击按钮(新)时,我想动态创建新标签。
使用此功能,我创建新文件:
bool MainWindow::toolbarNewFile()
{
QWidget page = new QWidget;
QTextEdit codeEditor = new QTextEdit;
QGridLayout layout = new QGridLayout;
layout->addWidget(codeEditor);
page->setLayout(layout);
tab_widget->addTab(page,"File");
return true;
}
但所有标签都有名称“FILE”
如何在标签名称编号中设置。 当我制作新选项卡时,自动设置选项卡的编号如下。
文件-1,文件-2,文件-3
我试着设置counter i=0; 并在addTab(page,"File-"+ i++); 不起作用。
I working on one application and I have problem with tab name When I click on push button (NEW) I want to dynamically create new tab
With this function i create new file:
bool MainWindow::toolbarNewFile()
{
QWidget page = new QWidget;
QTextEdit codeEditor = new QTextEdit;
QGridLayout layout = new QGridLayout;
layout->addWidget(codeEditor);
page->setLayout(layout);
tab_widget->addTab(page,"File");
return true;
}
But all tabs have name "FILE"
How to set in tab name number When i make new tab auto set number of the tab like this
File-1, File-2, File-3
I try to set counter i=0; and in addTab(page,"File-"+ i++); Doesn't work
原文:>
错误代码都没有呢?估计是你定义的SLOT有问题。
你看看我写的这段代码吧,是选取QComboBox控件中的文本内容的。
intmain(intargc,charargv)
{
QApplicationapp(argc,argv);
QComboBoxcomboBox=newQComboBox;
QTextEdittextEdit=new QTextEdit;
QVBoxLayoutlayout=new QVBoxLayout;
layout->addWidget(textEdit);
layout->addWidget(comboBox);
comboBox->addItem(QObject::tr("ComboBoxItem01"));
comboBox->addItem(QObject::tr("ComboBoxItem02"));
comboBox-addItem(QObject::tr("ComboBoxItem03"));
QObject::connect(comboBox,SIGNAL(activated(QString)),textEdit,SLOT(insertPlainText(QString)));
QWidget mainWin;
mainWinsetLayout(layout);
mainWinresize(770,550);
mainWinshow();
returnappexec();
}
from PyQt4 import QtGui,QtCore
import threading,time
class sy(QtGuiQWidget):
txt_signal = QtCorepyqtSignal(str)
def __init__(self,parent=None):
selfapp=QtGuiQApplication([])
super(sy,self)__init__(parent)
selftxt=QtGuiQTextEdit()
lay=QtGuiQVBoxLayout()
selftxt_signalconnect(selfwritetoTextbox)
layaddWidget(selftxt)
selfsetLayout(lay)
def main(self):
selfshow()
selfappexec_()
def write(self,s):
selftxt_signalemit(s)
@QtCorepyqtSlot(str)
def writetoTextbox(self,text):
selftxtappend(text)
def PrintSomething(stream):
timesleep(3)
print('hello world',file=stream,end="Yes,it's a test!")
if __name__=='__main__':
s=sy()
t=threadingThread(target=PrintSomething,args=(s,))
tstart()
smain()
要点:
一、print(value, , sep=' ', end='\n', file=sysstdout):
file参数决定输出内容要输出到哪里,任何拥有write(self,s)方法的对象都可以充作此参数
value参数的字符串表示将被作为一次输出,定向到file对象
end参数将被作为第二次输出,定向到file对象
二、PyQt绘制出的GUI界面用常规方法是无法从后台线程访问界面上的控件的,所以这里就另外定义了一个pyqtSignal,在后台线程调用write方法时在write方法中引发此信号的事件。
1、QFile
既然是读取文件,QFile类是必不可少的。QFile类提供了与C++语法相似的文件读取和写入 *** 作,支持文本文件和二进制文件。
2
2、QTextStream
使用QTextStream类,对文本文件读写时将会更加方便。该类重载了多个输入和输出 *** 作符。
3
3、QApplication
当我们进行文件读取时,如果文件比较大,读取时间可能会较长,这时,适当地调用QApplication类的静态函数setOverrideCursor设置光标为等待状态,可以让用户获知程序此时的工作状态。
END
二、 *** 作步骤
首先,在源文件中包含前面提到的头文件。然后,新建一个QFile对象,再以只读方式和文本文件方式打开指定的文件。
如果打开文件失败,d出对话框显示出错信息。在这里,tr引用的字符串中的%1参数对应于其后的第一个参数。该语句的显示效果如下面的图二所示。
为了进行文件内容的读取,我们先构建一个QTextStream对象,并将构建该对象的参数指定为之前创建的QFile对象。
然后,从QTextStream中读取所有文本,并将其设置到QTextEdit对象(即编辑框)中显示。在读取过程中,我们设置光标为等待状态。
5
现在,一切就大功告成了。立刻运行程序测试一下结果,完美地读取了文本文件内容!
// QTextEdit是多行文本编辑框,自动换行的,如果你要加行号,可以根据如下API进行
QTextEdit textEdit = new QTextEdit();
// 转换成TextDocument
QTextDocument document = textEdit->document();
// 获取行数
int nRowcnt = document->lineCount();
以上就是关于qt自动设置key编号全部的内容,包括:qt自动设置key编号、qt中怎样从textedit中一行一行的读取数据,然后写入到文件中、QT中ComboBox如何获取选中的文本内容下面程序出错了,如何改正等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)