qt怎么实现文字倒置保存文字

来自Ubuntu中文
字体是计算机调用显示字形的仓库。
Sans Serif
,对中文而言指的就是。并不是具体一款字体,而是一类字体,选择它其实等于选择这类字体中优先级最高的那款字体(交给 fontconfig 自动决定)。Sans 表示法语的“无”。有时简写成“Sans”。常见的无衬线体有 Arial、Helvetica、DejaVu Sans、微软雅黑和思源黑体。Ubuntu 也是一个无衬线体。无衬线体因为笔画简单没有复杂装饰,较为适合像素密度较低的普通电脑屏幕阅读,也受崇尚简单的现代人青睐。
,有时叫做白体。对于中文来说例子有宋体/明体(这些词和“黑体”一样,都是指一类字体);对于英文来说具体到字体名的例子有 Times 和 Garamond。一般认为衬线可以引导人阅读的视线,提高阅读速度和准度。
Cursive (Script)
(草书)手写体。严格的对应有 Itc Zapf Chancery、Zapfino 和行书/行楷。一些系统会使用有手写风格而不过分潦草的字体如 Comic Sans 代替,此时就应该使用楷书搭配。
,指字符宽度相同的一类字体。注意中英文宽度应该不是相同而是成整数倍关系——一般来说中文字符在这些字体中的宽度是西文的两倍(wcwidth)。
Proportional
,指字符宽度存在变化的字体。
Bitmap (Raster)
点阵字体,或者叫位图字体。以像素点形式存储在电脑中。
矢量字体,以曲线形式存储在电脑中。
有中文字体更详细的信息。
字体文件存放路径
/usr/share/fonts/
#系统字体,需要root权限才能操作
~/.fonts #用户字体,随便怎么搞,推荐
配置文件路径
/etc/fonts/fonts.conf #系统配置文件,需要root权限才能操作,对需要输入root密码的程序有效
~/.fonts.conf #用户配置文件,随便怎么搞,只对当前用户运行的程序有效
fc-cache -fv #通常复制字体进~/.fonts就会自动刷新字体,如果没有,用这个命令,如果复制进的是/usr/share/fonts/,用sudo fc-cache -fv
fc-match sans-serif #抓取当前用户sans-serif类字体优先级最高的那款字体
fc-match serif #抓取当前用户serif类字体优先级最高的那款字体
fc-match monospace #抓取当前用户monospace类字体优先级最高的那款字体
文泉驿的视觉习惯工具
把你最喜欢的字体拉到最上方,如果你特别注重英文字体(某些中文字体中的英文字型很难看),那把最喜欢的英文字体拉到最上方,其次是最喜欢的中文字体。这样,程序优先会使用你设定的英文字体,然后中文字再用其次的中文字体。(这个时候注意下)。
把生成的.fonts.conf复制到当前用户主目录,没有就新建,完成。
Qt3和Qt4应该不用设置就会用Sans Serif字体,调出qtconfig看看。
/usr/lib/qt3/bin/qtconfig #Qt3配置工具
qtconfig #Qt4配置工具,这个工具自身的保存字体功能一直有问题,不用管,改了.fonts.conf,这边一并会改的。
KDE3和KDE4,需要设定
kcontrol #KDE3配置工具-外观和主题-字体,等宽选择Monospace,其余选择Sans Serif
systemseetings #KDE4配置工具-观感-外观-字体,等宽选择Monospace,其余选择Sans Serif
随便下面的“圆整字体边角”都启用,取消“不包括范围”,勾选“使用次像素渲染”,其实这里修改的也是.fonts.conf中渲染部分
非GNOME2环境下的Gtk2可以用gtk-chtheme工具,
GNOME2用这个工具后会与GNOME2本身的设置起冲突,需要删除 .gtkrc-2.0(切记)。
sudo apt-get gtk-chtheme
gtk-chtheme
Monospace 字体族(
family)的字体是用于终端下面以及编程使用。这类字体的要求是能区分 1 i l,o 0 O。
Inconsolata 字体的终端效果
除了字体本身的设计外,文字显示的最终效果还受字体渲染和显示器硬件影响。
sudo apt-get install ttf-wqy-microhei
#文泉驿-微米黑
sudo apt-get install ttf-wqy-zenhei
#文泉驿-正黑
sudo apt-get install xfonts-wqy #文泉驿-点阵宋体
== == Fonts for other operating systems
As understanding of use, you can use these fonts to Ubuntu, of course, provided you have genuine copy, or ... ...
Windows 7 default English font is Segoe UI. Microsoft Simplified Chinese font is elegant black (with hinting), Traditional Chinese font is Microsoft is bold.
Snow Leopard
default English font is LucidaGrande, which added after the new government approved Chinese Simplified Chinese font Hiragino Sans GB (but not the default Chinese font, with hinting).Qt程序,从外部的文本读取汉字存进QString,如何让其转换成unicode - 开源中国社区
当前访客身份:游客 [
当前位置:
系统使用GB2312编码,不作任何处理,使用
QString fileName = QFileDialog::getOpenFileName(this,tr(&存入汉语&));
QFile LoadTxt(fileName);
QTextStream in(&LoadTxt);
QString line = in.readLine();
这时line中是使用GB2312编码汉字,而QString使用unicode编码,恰巧都是两个字节,所以能存的进去,但实际上line是错的,该如何转换?
我知道,如果不用从外部读入的话用
QString strr=QString::fromLocal8Bit(&你&);
就行,这时strr中是存放的unicode编码的汉字;
共有3个答案
<span class="a_vote_num" id="a_vote_num_
QByteArray text = LoadTxt.readAll();
QTextCodec *codec = QTextCodec::codecForName(&GB2312&);
QString in = codec-&toUnicode(text);
--- 共有 1 条评论 ---
自己设置实例化转码器就OK了,不知对你有没有用
(2年前)&nbsp&
<span class="a_vote_num" id="a_vote_num_
#include &QtCore/QCoreApplication&
#include &QtCore/QFile&
#include &QtCore/QTextStream&
#include &QtCore/QTextCodec&
#include &iostream&
#include &QDebug&
int main(int argc, char *argv[])
QCoreApplication a(argc, argv);
QFile file(&test.txt&);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
cout && &open error& &&
return -1;
QTextStream textInput(&file);
QString lineS
while (!textInput.atEnd())
textInput.setCodec(&utf-8&);
lineStr = textInput.readLine();
//cout && lineStr.toStdString() &&
qDebug() && lineStr &&
file.close();
return a.exec();
<span class="a_vote_num" id="a_vote_num_
QTextStream::setCodec
更多开发者职位上
有什么技术问题吗?
thinkin...的其它问题
类似的话题Qt中如何将信息保存到文本文件并且保留原来的信息,比如在原来的文本文件中添加一行信息。_百度知道
Qt中如何将信息保存到文本文件并且保留原来的信息,比如在原来的文本文件中添加一行信息。
这玩儿是对文件的操作啊,与qt关系并不紧密吧。对文件的修改只能是先把文件数据全部加载到内存,按照需求修改了之后,再把数据写入文件。回车符号与平台相关,win下需要写入&&#92;r&#92;n&,unix写入&&#92;n&,mac貌似是&&#92;r&,这个不太清楚,没用过。
其他类似问题
为您推荐:
提问者采纳
希望对你有帮助,用信号和槽机制实现 当 lineEdit接受到回车信号(lineEdit 自带此信号)时?应该有多种方法可以实现;3,2,以追加的方式打开你要保存的文件(用QFile类),你每一次想在已有的文本文件中追加一行信息。同时还可以用setShutCut()函数对pushButton设快捷键。附,在这我说一种可行的方案,并且按回车保存文件同过你的文字表示我理解为,可以实现当按下pushButton是追加写入信息后保存。1,也可以实现按回车响应pushButton达到你要的目的,新建 lineEdit 和 一个pushButton(不需要可以不用),将lineEdit内的内容追加方式写入文件
来自团队:
文本文件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁[转载]Qt&--&MainWindow实现文本新建/打开/保存/另存
今天用MainWindow类创建一个简单的文本,实现简单的新建、打开、另存为、保存,及字体大小颜色的改变。
一首先创建一个MainWindow类
运行下出现如下
现在我们要在上述MainWindow中添加文本编辑框、File菜单,里面包含新建、打开、另存为、保存,以及在工具栏里添加新建、打开、保存快捷图标。
首先先实现文本编辑框
为了方便我们把头文件的#include
&QtGui/QMainWindow& 改成#include
在上述MainWindow类里声明
QPlainTextEdit textE
在构造函数里写入
this-&setCentralWidget(textEdit);&
//意思就是只用一个textEdit文本编辑框填充
运行后如下:
Qt Resource File
后面一直按下去。创建后填加
先把F:QT4.7.3examplesmainwindowsapplication
中的images文件夹的图标复制到你的工程里,上面是我的路径。
先选择mainwindow.grc& 的Add/prefix
把prefix改成/,然后Add/Files ,选择刚才images里的所有图标
如下图所示:
下面就是实现菜单file简单功能的图标显示 的代码
在mainwindow.h的MainWindow类里声明:
QAction *newA
*openA//打开
*saveA//保存
*saveAsA//另存为
*closeA//关闭
*fileM& //fileMenu菜单
*fileToolB//fileToolBar工具栏
在mainwindow.cpp的mainWindow的构造函数里写如下代码:
**************************************************
API里的函数原形 QAction ( const QIcon & icon,
const QString & text, QObject * parent)
&新建这个行为包含图标,名字是New ,&说明crtl+N
是快捷键,下面出现的&都是同样的意思,父类是MainWindow.
newAction = new
QAction(QIcon(":/images/new.png"),"&New",this);
openAction = new
QAction(QIcon(":/images/open.png"),"&Open",this);
saveAction = new
QAction(QIcon(":/images/save.png"),"&Save",this);
saveAsAction = new QAction("Save&As",this);
closeAction = new
QAction("close",this);************************************************
*********************************************
在菜单栏里添加File菜单
File菜单里添加打开、新建、保存、另存为、关闭等行为选项
fileMenu =
this-&menuBar()-&addMenu("&File");
fileMenu-&addAction(newAction);
fileMenu-&addAction(openAction);
fileMenu-&addAction(saveAction);
fileMenu-&addAction(saveAsAction);
fileMenu-&addAction(closeAction);
*************************************************
*********************************************
在工具栏里添加打开、新建、保存等图标 行为选项
fileToolBar =
this-&addToolBar("File");
fileToolBar-&addAction(newAction);
fileToolBar-&addAction(openAction);
fileToolBar-&addAction(saveAction);****************************************************
上面只是显示图标、选项,还没有实际功能,接下来实现这些功能。
在mainwindow.h的MainWindow类里声明:
& && QString
currentN//当前文本的文件名
bool maybeSave();//判断当前文本是否保存
void setCurrentFile(const QString
&);//设置当前文本的文件名
bool saveFile(const QString &);//保存文本
&& void loadFile(const
QString &);//打开文本
public slots:
void slotNew();//新建文本的槽
void slotOpen();//打开文本的槽
bool slotSave();//保存文本的槽
bool slotSaveAs();//另存为文本的槽
在mainwindow.cpp 的MainWindow的构造函数里添加如下代码:
*****************************************************************
在菜单File里或工具栏里单击新建、打开、保存、另存为、关闭等信号产生对应的槽的实现&
QObject::connect(newAction,SIGNAL(triggered()),this,SLOT(slotNew()));&&
QObject::connect(openAction,SIGNAL(triggered()),this,SLOT(slotOpen()));&&&
QObject::connect(saveAction,SIGNAL(triggered()),this,SLOT(slotSave()));&&
QObject::connect(saveAsAction,SIGNAL(triggered()),this,SLOT(slotSaveAs()));&&
QObject::connect(closeAction,SIGNAL(triggered()),qApp,SLOT(quit()));
*****************************************************************
在mainwindow,cpp里实现mainwindow.h
方法、槽,代码如下
****************************************************************
函数作用:判断文件是否保存了
textEdit.document()-&isModified()
是判断文本编辑的内容是否被修改
如果被修改就跳出一个警告对话框,问是否保存、忽略、取消。
QMessageBox::warning()是警告对话框实现,里面参数依次是parent即MainWindow类,对话框标题,文本内容,三个按钮选择:save/discard/cancle
如果选择保存,执行保存方法;
如果选择取消,返回
如果没被修改,返回true
*****************************************************************
bool MainWindow::maybeSave()
if(textEdit.document()-&isModified())
QMessageBox::StandardB
ret = QMessageBox::warning(this,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
"warning",
"the document has been modified,Do you want to save your
change",&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
QMessageBox::Save|QMessageBox::Discard|QMessageBox::Cancel
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if(ret == QMessageBox::Save)
&&&&&&&&&&&
return slotSave();
if(ret == QMessageBox::Cancel)
&&&&&&&&&&&
***********************************************************
函数作用:设置当前文本名
如果文本名是空,就设为Untitle.txt,
如果不为空,就把当前文本名设为fileName
textEdit.document()-&setModified(false);
this-&setWindowModified(false);
这两句是使文本编辑 和窗口处于没被修改的状态
*********************************************************
void MainWindow::setCurrentFile(const QString
&fileName)
&&& currentName
textEdit.document()-&setModified(false);
this-&setWindowModified(false);
fileName.isEmpty() ?
&&&&&&&&&&&&&&&
this-&setWindowFilePath("Untitle.txt"):
&&&&&&&&&&&&&&&
this-&setWindowFilePath(fileName);
}*********************************************************
函数作用:新建文件点击后实现的方法(槽)
当点击新建,如果当前以有打开的文本,先判断文本是否被修改,如果没被修改,直接把文本编辑的内容清掉,并把新建的文本名设为Untitle.txt。
有被修改,就执行maybeSave()里的 return slotSave();进行保存
&************************************************************&&&
void MainWindow::slotNew()
if(maybeSave())
textEdit.clear();
setCurrentFile("");
****************************************
函数作用:点击保存所实现的方法(槽)
如果当前文本名为空,就执行另存为方法
如果不为空,就执行保存文本的方法
*************************************bool MainWindow::slotSave()
if(currentName.isEmpty())
return slotSaveAs();
return saveFile(currentName);
*******************************************
函数作用:把文本编辑的内容保存到文本里面
先新建文本,打开文本,如果打开失败会跳出一个错误对话框,显示不能写
如果打开成功,新建一个文本流out,把文本编辑的内容都输出到文本流,并设置当前的文本名为保存时写的文本名。
**********************************************bool
MainWindow::saveFile(const QString &fileName)
file(fileName);
if(!file.open(QFile::WriteOnly|QFile::Text))
QMessageBox::critical(this,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
"critical",
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
"cannot write file"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
QTextStream out(&file);
out&&textEdit.toPlainText();
setCurrentFile(fileName);
***********************************
函数作用:点击另存为选项实现的方法
点击另存为跳出文件对话框,输入另存为名字并把改名字赋值给fileName
如果没输入另存为名字取消掉,返回false
如果输入,用这个名字保存文本
**************************************
bool MainWindow::slotSaveAs()
&&& QString
fileName =QFileDialog::getSaveFileName(this);
if(fileName.isEmpty())
return saveFile(fileName);
}***************************************
函数作用:点击打开选项实现的方法(槽)
点击打开文本,先判断当前已经打开的文本是否保存
如果保存了,就跳出文件对话框,输入要打开的文件名,并把该文件名赋值给fileName,fileName不为空,打开该文件
********************************************void
MainWindow::slotOpen()
if(maybeSave())
QString fileName = QFileDialog::getOpenFileName(this);
if(!fileName.isEmpty())
&&&&&&&&&&&
loadFile(fileName);
**********************************************
函数作用:打开fileName这个文件
先打开fileName文本,如果打开失败,跳出一个错误对话框,并返回
如果打开成功,把该文本的内容都读到文本编辑上,并设置当前文本的文件名为fileName.
****************************************************************
void MainWindow::loadFile(const
QString &fileName)
file(fileName);
if(!file.open(QFile::ReadOnly|QFile::Text))
QMessageBox::critical(this,
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
"critical",
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
"cannot read file"
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
QTextStream in(&file);
textEdit.setPlainText(in.readAll());
setCurrentFile(fileName);
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。您的举报已经提交成功,我们将尽快处理,谢谢!
对着任务栏的QT图标点右键,然后再点语音设置就可以设置了,在房间里面选择背景音乐的话,别人可以听到你的电脑放得音乐
大家还关注
(window.slotbydup=window.slotbydup || []).push({
id: '2081942',
container: s,
size: '1000,60',
display: 'inlay-fix'

我要回帖

更多关于 qt label文字居中 的文章

 

随机推荐