QWizard :: setField:无法写入属性

时间:2015-05-13 12:23:17

标签: c++ qt

我尝试使用以下语法将QString定义为QWizard页面中的字段:

registerField("MESSAGE", this);

我可以正确设置字段值并使用QWizardPage :: field()获取它的值,但我总是发出以下警告:

QWizard :: setField:无法写入属性''

如何创建QString字段以便不会收到此类警告?

1 个答案:

答案 0 :(得分:1)

使用虚拟QLineEdit:

protected void onPostExecute(String json) {

    try {
        JSONObject jsonObject = new JSONObject(json);
        JSONArray jsonArray = jsonObject.getJSONArray("server_response");
        JSONObject JO = jsonArray.getJSONObject(0);
        String code = JO.getString("code");
        String message = JO.getString("message");

        if (code.equals("true")) {
            /**********************************/

            LayoutInflater inflater = activity.getLayoutInflater();
            View mContainer = inflater.inflate(R.layout.fragment_home, null);
           // LinearLayout linearLayout = (LinearLayout)mContainer.findViewById(R.id.mylinearLayout);

            TextView text = new TextView(linearLayout.getContext());
            text.setText("TEST");
            text.setTextSize(30);

            Log.d("View", "Start");
            try {
                ((ViewGroup)activity.findViewById(R.id.mylinearLayout)).addView(text);
            } catch (Exception e) {
                e.printStackTrace();
            }

在另一页:

QLineEdit *dummy = new QLineEdit(this);
dummy->setVisible(false);
registerField("MESSAGE", dummy);

setField("MESSAGE", "bar");

QLineEdit将向导页面作为其父级,因此不会导致内存泄漏。只要您不将其添加到布局并使其不可见,它就不会显示在您的页面上。