- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
Windows 7 SP1
MSVS 2010
Qt 4.8.4
我想确定 QLineEdit 小部件的最大大小,知道必须放入其中的最大字符数。
因此,我想使用:
int QFontMetrics::maxWidth () const
Returns the width of the widest character in the font.
但是这个:
#include <QApplication>
#include <QFont>
#include <QFontMetrics>
#include <iostream>
using std::cout; using std::endl;
int main(int argc, char *argv[])
{
QApplication app(argc,argv);
QFontMetrics metrics(QApplication::font());
cout << "Default - Max width: " << metrics.maxWidth() << " Width of X: " << metrics.width('X') << endl;
const QFont f("Monospace", 8);
QFontMetrics metrics2(f);
cout << "Monospace 8 - Max width: " << metrics2.maxWidth() << " Width of X: " << metrics2.width('X') << endl;
const QFont f2("Cambria", 16);
QFontMetrics metrics3(f2);
cout << "Cambria 16 - Max width: " << metrics3.maxWidth() << " Width of X: " << metrics3.width('X') << endl;
return 0;
}
输出这个:
Default - Max width: 23 Width of X: 6
Monospace 8 - Max width: 23 Width of X: 6
Cambria 16 - Max width: 91 Width of X: 12
问题:为什么最大宽度比'X'的宽度大这么多?字体中是否有一些我不知道的超大字符?
最佳答案
这不是 Qt 问题,因为底层 Windows API(GetTextMetrics
和 GetTextExtentPoint
)提供相同的值。
不要忘记,一种字体可能包含许多不常见字符的字形:连字、各种长破折号、符号、装饰符号和您意想不到的字母表中的字符。
我对“等宽”字体会发生这种情况感到有点惊讶,但显然,这些只是为该字体设计的字符子集的固定间距。以Courier New为例,有几十个字符的宽度是普通字符宽度的两倍以上,例如U+0713 SYRIAC LETTER GAMAL: WE。
如果大部分时间都是正确的就足够了,我会取平均字符宽度,将它四舍五入一点,然后乘以它。如果用户需要输入几个异常宽的字符,您可能需要稍微滚动一下,但这还不是世界末日。
如果你知道它总是英文,你不妨测量一个大写的 W 并使用它。
关于c++ - 为什么 QFontMetrics::maxWidth 会返回这么大的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14165988/
如果我尝试将 'android:maxWidth="400dp"' 添加到以下 ImageView,什么也没有发生...和想法? 最佳答案 对于遇到此问题的任何其他人:我必须将其包装在 FrameL
我想设置编辑框的最大宽度。所以我创建了这个小布局: 但它不起作用,盒子无论如何可能超过 150 dp。 EditText 中的 android:maxWidth="150dp" 将给出相
这个问题源于无法让我的 TextBlock 换行。基本上作为最后的尝试,我在容器网格的列上设置 MaxWidth。我惊讶地发现我的子标签和文本框仍然可以为所欲为(坏 child ,BAD),并且不受我
http://jsfiddle.net/ndpnU/2/ 我想设置 maxWidth,但找不到任何解决方案,您可以帮助我吗? 我用这个: $("#one").resizable({ minWi
我在仅使用可用视口(viewport)设置颜色框时遇到问题。一旦我设置了 maxHeight 或 maxWidth 属性,就不会显示任何图像。颜色框打开,但停留在“旋转轮”处。 function sh
我有一个带有 DataTemplate 设置的数据绑定(bind) ListBox。 DataTemplate 包含一个具有 Auto 和 * 两个列宽的 Grid 控件。我希望此列始终填充 List
我有一个使用 maxWidth 定义的 jqueryui 对话框。 $("#myDialog").dialog({ autoOpen: false, width: 'a
我的鳕鱼是这样的: COMMENT var img = new Image(); img.onload = function () { alert(this.width); } img.src =
忽略 JavaFx 8 最大宽度 对于具有更宽内容的 HBox 子项,将忽略 maxWidth。 例如,下面的中心 Pane 太大,延伸到右列 (Pane) 下:
我试图在 Android 中的 EditText 上应用 maxWidth。但是属性似乎被忽略了。事实上,我只是想让一个 EditText 在屏幕中央对齐,并为大屏幕设置最大尺寸。这是我的代码:
我需要获取特定字体的任意字符的最大宽度(以磅为单位)。 基本上,我有一个字符串数组,全部都有四个字符。我需要计算这些字符串之一可能的最大宽度是多少。 UIFont 有很多计算不同情况下高度的方法,但没
我有以下布局: 在代码中,我使用以下设置用户可自定义的 maxWidth 大小: textview.setMaxWidth(768); 我面临的问题是,maxWidth 设置只能
Windows 7 SP1 MSVS 2010 Qt 4.8.4 我想确定 QLineEdit 小部件的最大大小,知道必须放入其中的最大字符数。 因此,我想使用: int QFontMetrics::
使用fill_parent时,maxWidth无效。 最佳答案 maxWidth 属性对match_parent(或已弃用的fill_parent)的
我有一个在 XAML 中定义的 WPF 窗口,如下所示: ..... ..... 问题是当窗口被创建并显示在屏幕上时 - 它总是大于我在宽度定义中指定的 70 像素。宽度大概是 80-90 像素。
documentation对于 Paint.breakText说 breakText int breakText (CharSequence text, int sta
考虑这段代码: var img = new Image(); img.onload = function() { console.log(this.width); }; img.src = '
我正在尝试为 Angular ng-grid 元素创建一些自动调整大小的属性: for (var i = 0; i < $scope.dates.length; i++) {
我在内容中得到了 RelativeLayout: android:maxWidth="350dp" 不起作用。对于 layout_width 和 layout_height 使用 wrap_cont
我想知道是否有可能实现以下(消息线程;首先从发件人的右侧开始,而不是收件人的一侧) View : ...使用支持库中的 Android 约束而不是 maxWidth 属性,特别是文本气泡的宽度 - 我
我是一名优秀的程序员,十分优秀!