我在我的wxPython程序中有一個TextCtrl
,我想將它的寬度設置爲3個字符。但是,手動設置其大小的唯一方法是隻接受多個像素。有沒有什麼方法可以指定字符而不是像素?以字符數設置wxPython TextCtrl的寬度
7
A
回答
2
認識到大多數字體是成比例的,這意味着每個字符可能採取不同的寬度。 WWW和lll都是3個字符,但它們需要大小不同的文本框。一些字體,如Courier,被設計爲固定寬度,不會有這個問題。不幸的是,您可能無法控制文本框中選擇哪種字體。
如果您仍想嘗試此操作,關鍵是以像素爲單位獲取字符的寬度,將其乘以字符數,然後爲字符周圍的邊框添加一些填充。您可能會發現這是一個很好的起點:
http://docs.wxwidgets.org/stable/wx_wxdc.html#wxdcgetpartialtextextents
,或者作爲litb建議:
http://docs.wxwidgets.org/2.4/wx_wxwindow.html#wxwindowgettextextent
3
似乎沒有成爲一個方式。但是,您可以使用wxWindow::GetTextExtent
。這是C++代碼,但可以很容易地適應的wxPython:
int x, y;
textCtrl->GetTextExtent(wxT("T"), &x, &y);
textCtrl->SetMinSize(wxSize(x * N + 10, -1));
textCtrl->SetMaxSize(wxSize(x * N + 10, -1));
/* re-layout the children*/
this->Layout();
/* alternative to Layout, will resize the parent to fit around the new
* size of the text control. */
this->GetSizer()->SetSizeHints(this);
this->Fit();
這是,則採取合理的寬度字符的大小(字體可以具有可變寬度字符)並適當相乘,加入一些小的值,以說明本地填充(例如10px)。
相關問題
- 1. 如何修改wxPython中TextCtrl的寬度?
- 2. 設置Android字符寬度
- 3. wxPython textCtrl silent AppendText
- 4. 基於工具欄寬度設置wxPython框架的寬度
- 5. 是否可以限制TextCtrl只接受wxPython中的數字?
- 6. 框架中的textctrl的動態寬度
- 7. WxPython:在TextCtrl中定期設置的值不起作用
- 8. 在iOS中設置Unicode字符寬度
- 9. wxpython textctrl不寫時綁定
- 10. wxPython中添加行TextCtrl
- 11. wxPython TextCtrl透明背景
- 12. wxPython:把wx.TE_PROCESS_ENTER放在Masked TextCtrl
- 13. 將高度設置爲視口寬度除以數字
- 14. 如何爲TextView設置最小寬度(以字符爲單位)?
- 15. 在wxPython中使用ScrolledWindow設置框架的最大寬度
- 16. 設置寬度
- 17. 將html TD寬度設置爲字符數
- 18. CSS設置寬度parentNode的寬度
- 19. 以條形圖設置條的寬度
- 20. 我可以設置UIWebBrowserView的寬度嗎?
- 21. wxPython:如何搜索TextCtrl中的文本?
- 22. wxPython的TextCtrl和無限循環問題
- 23. WxPython [TextCtrl]:使用TextCtrl函數將光標定位到文本結尾的方式。
- 24. 爲精確字符長度設置EditText寬度
- 25. wxPython wx.TextCtrl選項卡寬度
- 26. 更改FilePickerCtrl框寬度(wxPython)
- 27. 設置UIScrollView寬度
- 28. 設置寬度sap.m.MenuButton
- 29. 可以設置進度對話框的尺寸(寬度),以及如何設置?
- 30. Android設置webview寬度以匹配其內容寬度